Minecraft Spigot Ban Event?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mach's so:

@EventHandler

public void onDeath(PlayerDeathEvent e) {

Player p = e.getEntity();

if(p.isDead()) {

p.getPlayer().kickPlayer("§4Du bist gestoreben!");

public void onLogin(PlayerLoginEvent e)
e.disllow(result.KLICK_OTHER, "[Die Nachricht die angezeigt werden soll wenn der Spieler den Server Beitritt]" + [Deine Main Klasse].cfg.getString(e.getPlayer().getName()) + "[nochmal ne Nachricht]");

}

}
 

    Dann noch deine Main classes muss am Anfang 

public static File folder = new File("plugins/[Dein plugin Name]"
public static File = new File("plugins/[Dein pl name]/Ban.yml")
public static YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
public static void save() {
try {
cfg.save(file);
}catch (IOException e) {
e.printStackTrace():
}
}
private static main plugin;

@Override
public void onDisable() {
}
@Override
public void onEnable() {
loadConfig();
PluginManager pm =Bukkit.getPluginManager();

pm.registerEvents(new [Deine ban class](),this);


Und am Ende deiner Main Klasse

Public void loadCinfig() {
FileConfiguration cfg = this.getConfig();
cfg.options().copyDefault(true);
this.saveConfig();
}
}

Hab alles auf dem handy geschrieben und viel Mühe gegeben 😅
Bei Fehler schreib mir per Privatnachricht
Woher ich das weiß:
Hobby
9

Hoffe es hilft hab über 20 min gebraucht das zu schreiben

0
5
@ichfragenurok

Ersteinmal danke für den Code xD Och hab jetzt ein bisschen rumprobiert und hab eine einfachere Lösung gefunden c:

Bukkit.getBanList(BanList.Type.Normal).addBan(p.getName(), "Du wurdest gebannt", null, null)

0

Das ist rot unterstrichen weil du p.getPlayer() machst.
Wieso zur Hölle willst du den Player getten wenn du ihn schon vorher definiert hast

5

Selbst wenn ich p.setBanned(true);

mache, wird es unterstrichen.

Und, wie gesagt, ich hab mich verschreiben c:

0
10
@Dominik432

Wird es Rot Unterstrichen oder Rot durchgestrichen?.
Bei Rot durchgestrichen kannst du es schon noch verwenden. Rot unterstrichen sollte eigentlich nicht der Fall sein, es sein denn du benutzt 1.12 wovon ich jetzt aber mal nicht ausgehe.

Aber wie bereits gesagt worden ist währe die "elegantere" Lösung den Spieler zu Kicken und in einer File/Database zu speichern, um dann das Joinen zu verweigern. Dann kannst du auch schöne Messages machen und weitere Infos zum Ban etc speichern.

0
10
@ichfragenurok

Hahah meine Finger währen abgefallen. Aber versteh ich da was falsch oder würde bei deinem Code einfach jeder der joinen will direkt gekickt werden?

0
9
@IchBinSmile

Nein, die Funktion p.setBanned würde einfach nur von Bukkit entfernt und man muss es umständlicher Lösen. Um deine Frage zu beantworten wenn man nur die Bann class hat schon. Aber ich bin ausgegangen das der Fragensteller in der class noch drin stehen hat weswegen er gebannt wird also wenn man's so übernimmt dann sollte es eh nen Fehler ausgeben 😅

1

Wieso getPlayer() wenn p schon der Player ist?

Hallo, weiß jemand von euch warum dieser Fehler kommt?

Code:

public class InventoryClickListener implements Listener {
@EventHandler
public void onClick(InventoryClickEvent e){
    Player p = null;
    if (e.getWhoClicked() instanceof Player){
        p = (Player) e.getWhoClicked();
    }
    if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§2§lNavigator")) {
        p.openInventory(Main.inv);
        e.setCancelled(true);
    }




}

}

Der Fehler kommt wenn ich im Inventar bin und irgendwo hin klicke...
Fehler:

Danke im

...zur Frage

.toLowerCase().startsWith("@op ") funktioniert nicht?

Hey! ich habe einen Team-Chat programmiert, der wie folgt aussieht :

(Also eigentlich einen OP-Chat aber ist eigentlich das gleiche)

public class opChat implements Listener {
    @EventHandler(priority = EventPriority.HIGH)
    public void onPlayerChat(AsyncPlayerChatEvent event) {
        String messagewithoutop = event.getMessage().substring(4);
        if (event.getMessage().startsWith("@op ") || event.getMessage().startsWith("@Op ") || event.getMessage().startsWith("@oP ") || event.getMessage().startsWith("@OP ")) {
                if (event.getPlayer().isOp()) {
                    event.setCancelled(true);
                    event.getPlayer().sendMessage("§8[§4OP§8] §c" + event.getPlayer().getName() + " -> §e" + messagewithoutop);
                    for (Player all : Bukkit.getServer().getOnlinePlayers()) {
                        if (all.isOp()) {
                            if (all != event.getPlayer()) {
                                all.sendMessage("§8[§4OP§8] §c" + event.getPlayer().getName() + " -> §e" + messagewithoutop);
                            }
                        }
                    }
                }
            }
        }
    }

Ihr seht ja, dass ich die @op Abfrage so gemacht habe

.startsWith("@op ") || event.getMessage().startsWith("@Op ") || event.getMessage().startsWith("@oP ") || event.getMessage().startsWith("@OP "))

ich habe es mit event.getMessage().toLowerCase().startsWith("@op ") schon versucht, nur wenn ich dann @op in den Chat eingebe, passiert nichts

...zur Frage

Minecraft JumpPads Plugin selber geschrieben!

Hallo, ich bin grade dabei ein JumpPadPlugin zu schreiben allerdings habe ich ein Problem... Hier ist erstmal der TeilCode:

  @SuppressWarnings("deprecation")
  @EventHandler
  public void on(PlayerMoveEvent e){
      Player p = e.getPlayer();
    if (p.getLocation().getBlock().getType() == Material.STONE_PLATE) {
        if (p.getLocation().subtract(0D, 1D, 0D).getBlock().getType() == Material.REDSTONE_BLOCK) {
            Vector v = p.getLocation().getDirection().setY(1D).multiply(3D);
 
            p.setVelocity(v);
            
            p.playEffect(p.getLocation(), Effect.EXPLOSION_LARGE, 5);
            p.playSound(p.getLocation(), Sound.EXPLODE, 1F, 1F);
            
            Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    p.sendMessage(ChatColor.GREEN + "Viel Spaß :D.");
                    p.getLocation().getDirection().multiply(3D);
                    p.setFallDistance(-999F);
                }
            }, 20L);
    }

Also bei dem letzen Semikolon wird mir angezeigt: Syntax error, insert "}" to complete Statement

Vielleicht kennt sich hier ja einer Damit aus wenn ja schon mal vielen Dank im voraus :D

...zur Frage

java.lang.IllegalArgumentException: Plugin already initialized!?

Error: http://pastebin.com/dFUBfVsW

MainClass:

Der Fehler ist in Zeile 22 wird das hier aufgerufen:

private void initListener()
{
    Bukkit.getPluginManager().registerEvents(new JoinListener(this), this);
    Bukkit.getPluginManager().registerEvents(new QuitListener(this), this);
}

JoinListener:

public JoinListener(MainClass mainClass) 
{
    con = new GetFromConfig();
    this.main = mainClass;
}

@EventHandler
public void onJoin(PlayerJoinEvent event)
{
    String message;
    
    if (event.getPlayer().isOp() == true) 
    {
        message = con.returnString(event.getPlayer(), "JoinMessageOp", main);
        if (message == "")
        {
            event.setJoinMessage(null);
        }
        else 
        {
            event.setJoinMessage(message);
        }
    }
    else
    {
        message = con.returnString(event.getPlayer(), "JoinMessagePlayer", main);
        if (message == "")
        {
            event.setJoinMessage(null);
        }
        else 
        {
            event.setJoinMessage(message);
        }
    }
}

QuitListener:

public QuitListener(MainClass mainClass) 
{
    con = new GetFromConfig();
    this.main = mainClass;
}

@EventHandler
public void onJoin(PlayerQuitEvent event)
{
    String message;
    
    if (event.getPlayer().isOp() == true) 
    {
        message = con.returnString(event.getPlayer(), "LeaveMessageOp", main);
        if (message == "")
        {
            event.setQuitMessage(null);
        }
        else 
        {
            event.setQuitMessage(message);
        }
    }
    else
    {
        message = con.returnString(event.getPlayer(), "LeaveMessagePlayer", main);
        if (message == "")
        {
            event.setQuitMessage(null);
        }
        else 
        {
            event.setQuitMessage(message);
        }
    }
}
...zur Frage

Ban plugin like Minesucht.net?

Ich suche ein Plug-in like Minesucht.net zum bannen der Hacker, z.b. /Ban Frankos09 1 und dann ist er 30 Tage gebannt, das halt auch mit /mute Frankos09 1 für Beleidigung das er dann 10 Tage Gemutet ist! Wenn es möglich ist keine MySQL und Es muss Spigot 1.8 sein

...zur Frage

Eclipse Leben abzeiehen?!

Was ist an diesem Code falsch? Ich wollte, dass wenn man ein Feuer aus macht (auf es drauf schlägt) man schaden bekommt.

Hier der Code (Abgesehen vom oberen Teil):

@EventHandler public void onInteract(PlayerInteractEvent e) {

    Player p = e.getPlayer();
    Location PL = p.getLocation();
    Block b = e.getClickedBlock();
            
    if(e.getClockedBlock().getType().equals(Material.FIRE)) {

        p.playSound(PL, Sound.HURT, 1, 20);
        p.setHealth(-1.0);
        p.setFireTicks(2);
        
    }
    }
...zur Frage

Was möchtest Du wissen?