ProtocolLib loading error in my plugin

Discussion in 'Plugin Development' started by Taeron, Apr 19, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    Taeron

    Error: http://pastebin.com/zwc43PRZ

    Code:
    name: HidePlayers
    main: fr.taeron.hideplayers.EntityListener
    author: Taeron
    version: 0.1
    commands:
      hideplayer:
        description: Hide or show a player.
    
    Code:
    package fr.taeron.hideplayers;
    
    import java.util.Set;
    
    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import com.comphenix.protocol.PacketType;
    import com.comphenix.protocol.ProtocolLibrary;
    import com.comphenix.protocol.events.PacketAdapter;
    import com.comphenix.protocol.events.PacketEvent;
    import com.google.common.collect.Sets;
    
    public class EntityListener extends JavaPlugin {
        private Set<String> ignoreTabList = Sets.newHashSet();
      
        @Override
        public void onEnable() {
            Bukkit.getLogger().info("§aHidePlayers fonctionne");
            ProtocolLibrary.getProtocolManager().addPacketListener(
              new PacketAdapter(this, PacketType.Play.Server.PLAYER_INFO) {
                @Override
                public void onPacketSending(PacketEvent event) {
                    String name = event.getPacket().getStrings().read(0);
                  
                    if (ignoreTabList.contains(name)) {
                        event.setCancelled(true);
                    }
                }
            });
        }
      
        private void ignore(Player player) {
            ignoreTabList.add(player.getPlayerListName());
        }
      
        public void unignore(Player player) {
            ignoreTabList.remove(player.getPlayerListName());
        }
      
        @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (command.getName().equalsIgnoreCase("hideplayer")){
               if (args.length != 1) {
                   sender.sendMessage("§cMerci de préciser le joueur.");
               } else if (sender instanceof Player) {
                   Player observer = (Player) sender;
                   Player player = getServer().getPlayer(args[0]);
                  
                   // Stop sending tab list packets about this player
                   ignore(player);
                  
                   if (observer.canSee(player)) {
                       observer.hidePlayer(player);
                   } else {
                       observer.showPlayer(player);
                   }
                  
                   unignore(player);
               }
               return true;
        }
            return false;
      }
    }
    
    Why? :(
     
    Last edited by a moderator: Apr 19, 2016
  2. Offline

    timtower Administrator Administrator Moderator

  3. Offline

    Zombie_Striker

    @Taeron
    Are you sure the plugin has Protocol Lib enabled/installed on your server? Are you sure you have the newest version of Protocol Lib.
     
  4. Offline

    mcdorli

    Why do you need protocolLib for this? Ypu need tk add the depend tag to the plugin.yml
     
  5. Offline

    Taeron

    k I had forgotten to put depend: [ProtocolLib] in my plugin.yml, solved thanks ._.
     
  6. Offline

    mcdorli

    Mark the thread as solved
     
Thread Status:
Not open for further replies.

Share This Page