Spigot plugin Command Blockieren?

1 Antwort

Erstmal ist das ".toLowerCase()" nach "pl" unnötig, da "pl" ja schon kleingeschrieben ist ^^. Hast du das Event registriert? Wenn ja, prüfe doch z.B. mit einer Broadcast Nachricht ob der Code überhaupt bis zum setCancelled(true); kommt?

1. toLowerCase ist wichtig, da man sonnst einfach /PL schreiben könnte.

2. Ist Regsitriert

3. Versuche ich eben.

EDIT : Ist gecancelt!

0
@Hendrik2708

Hehehehe Jaguut. Trotzdem ich habe Jetzt 

if(e.isCancelled()){

p.sendMessage("1");

}else{

p.sendMessage("2");

}

Genutzt, es wird auch 1 gesendet.

0
@Hendrik2708

Habe das Jetzt testweise so:

@EventHandler

private void onCommandPreProcess(PlayerCommandPreprocessEvent e) {
Player p = e.getPlayer();
if (!Rang.isTeam(p)) {
if (e.getMessage().toLowerCase().contains("pl")) {
if (!e.isCancelled()) {
p.sendMessage("0");
} else {
p.sendMessage("0.5");
}
e.setCancelled(true);
if (e.isCancelled()) {
p.sendMessage("1");
} else {
p.sendMessage("2");
}
}
}
}

Omg die Formatierung ._.

0
@AdlerCraft

Scheint irgendwie ein allgemeines Problem zu sein, sonst entzieh den Usern, welche nicht im Team sind, die Permission bukkit.command.plugins

0
@Hendrik2708

Ich wollte aber auch Comamnds wie /version /bukkit:pl /? /aac etc. Blockerien. Dafür gibt es keine Permissions

0

Mein Virtuelles Inventar öffnet sich nicht... Weißt du Warum?

Meine Teleporter Klasse:

package items;

import main.Main; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;

public class Teleporter implements Listener {

@EventHandler
public void onInventoryClick(InventoryClickEvent e){
    Player p = null;
    if(e.getWhoClicked() instanceof Player){
        p = (Player) e.getWhoClicked();
    }
    if(e.getWhoClicked().getWorld().getName().equals(Main.world)){
        if(e.getCurrentItem() != null){
            if(e.getCurrentItem().hasItemMeta()){


                if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§2§lNavigator")){
                    p.openInventory(Main.inv);
                    e.setCancelled(true);
                }
            }
        }
    }

}

@EventHandler
public void onInteract(PlayerInteractEvent e){
    Player p = e.getPlayer();
    if(e.hasItem()){
    if(e.getItem().hasItemMeta()){
        if(e.getItem().getItemMeta().getDisplayName().equals("§2§lNavigator")){
            p.openInventory(Main.inv);
            e.setCancelled(true);

        }
    }

} }

}

...zur Frage

Wie programmiere ich ein unnick?

public class CommandNick implements Listener, CommandExecutor{


private Field nameField;
static String prefix = "";
boolean Premium = false;
boolean Vip = false;
boolean Ultra = false;
private Main plugin;


public CommandNick(Main main){
    this.plugin = main;
}

@Override
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){
    nameField = getField(GameProfile.class, "name");
    Field altName = getField(GameProfile.class, "name");
        if(s instanceof Player)
        {
            Player p = (Player) s;
            CraftPlayer cp = (CraftPlayer)p;
            if(args.length == 0){
                p.sendMessage("/nick <name> <rank>");
            }else if(args.length == 1 || args.length == 2){
                MySqlNick.nick(p.getUniqueId(), args[0]);
                PermissionUser user = PermissionsEx.getUser(p);
                String[] permissions = user.getGroupsNames();
                String name = args[0];
                if(args.length == 2){
                    String Rank = args[1];
                    if(p.hasPermission("nick.owner")){
                        Premium = true;
                        Vip = true;
                        Ultra = true;
                    }else if(p.hasPermission("nick.ultra")){
                        Premium = true;
                        Vip = true;
                        Ultra = true;
                    }else if(p.hasPermission("nick.vip")){
                        Premium = true;
                        Vip = true;
                    }else if(p.hasPermission("nick.premium")){
                        Premium = true;
                    }
                    
                
                
                
                    if(Rank.equalsIgnoreCase("Premium") && Premium == true){
                        prefix = "§ePremium: ";
                    }else if(Rank.equalsIgnoreCase("Vip") && Vip == true){
                        prefix = "§5VIP: ";
                    }else if(Rank.equalsIgnoreCase("Ultra") && Ultra == true){
                        prefix = "§1Ultra: ";
                    }else{ 
                        prefix = "Spieler: ";
                    }
                }else{
                    prefix = "Spieler: ";
                }
                try {
                    nameField.set(cp.getProfile(), prefix + ""+name);
                } catch (IllegalArgumentException | IllegalAccessException e) {
                    e.printStackTrace();
                }
                
                PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId());
                sendPacket(destroy);
                removeFromeTab(cp);
                
                new BukkitRunnable() {
                    
                    @Override
                    public void run() {
                        addToTab(cp);
                        PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
                        for(Player pl : Bukkit.getOnlinePlayers()){
                            if(!pl.equals(p)){
                                ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(spawn);
                            }
                        }
                    }
                }.runTaskLater(this.plugin, 5);
                p.sendMessage(Main.prefix + "Du bist nun als " + MySqlNick.getNickname(p.getUniqueId()) + " mit dem Prefix " + prefix);
            }
        }
    
    return false;
}
public static void removeFromeTab(CraftPlayer cp){
    PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle());
    sendPacket(packet);
    }
public static void addToTab(CraftPlayer cp){
    PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle());
    sendPacket(packet);
    }
public static void sendPacket(Packet packet){
    for(Player all : Bukkit.getOnlinePlayers()){
        ((CraftPlayer)all).getHandle().playerConnection.sendPacket(packet);
    }
}

public static Field getField(Class clazz, String name){
    try {
        Field field = clazz.getDeclaredField(name);
        field.setAccessible(true);
        return field;
    } catch (NoSuchFieldException | SecurityException e) {
        return null;
    } 
        

}

}

Mein Nick Plugin

...zur Frage

Minecraft-PL-Code funktioniert nicht?

Hier der Code:

https://hastebin.com/akeyoroxuv.swift

Hier die Join:

    @EventHandler
public void onJoin(PlayerJoinEvent e) {
    if(PermissionsEx.getUser(e.getPlayer()).inGroup("hacking")) {
    e.getPlayer().kickPlayer("§c§lSLURIA.NET - SERVERNETZWERK \n \n §c Du wurdest für Hacking gebannt. \n \n §cZeit = §4PERMANENT \n \n §cWenn dies ein Fehler ist, melde diesen im Ts \n \n §bTs3: Sluria.net \n");
    e.getPlayer().sendMessage("HALLO");
    } else {
    e.getPlayer().sendMessage("§cWillkommen auf Sluria.Net!");
}
  }
        
}

Folgender Fehler:

Man wird nicht wenn man in der Gruppe: "hacking" ist wieder beim Join gekickt für den Bangrund. Wie soll ich das machen?

...zur Frage

Wie kann ich diesen Fehler in Eclipse beheben?

Ich brauche HILFE! Ich möchte gerne mit den programmieren beginnen in Richtung Java usw.. aber als ich Eclipse gedownloadet habe und die Java Developement Edition SDK 7 und als ich Eclipse ausführen wollte kam dann diese Fehlermeldung: [Bild]

...zur Frage

Spieler in IF abfragen?

Hallo ich möchte bei Minecraft Java plugin, dass wenn ein Spieler mit einem Bestimmten Namen joint einen Effekt abspielen doch bekomme ich das nicht hin hier mein jetziger Code

@EventHandler
public void onJoin(PlayerJoinEvent e){
    Player p = e.getPlayer();
    
    p.sendMessage("funkt");
    
    if(){
    }
    
}
...zur Frage

Was möchtest Du wissen?