Skip to content

Instantly share code, notes, and snippets.

@aadnk
Created February 10, 2014 11:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aadnk/492ffe0b763502b1a57b to your computer and use it in GitHub Desktop.
Save aadnk/492ffe0b763502b1a57b to your computer and use it in GitHub Desktop.
Prevent PacketPlayOutPlayerInfo from being sent.
package com.comphenix.example;
import java.util.Set;
import org.bukkit.ChatColor;
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 IgnoreTabList extends JavaPlugin {
private Set<String> ignoreTabList = Sets.newHashSet();
@Override
public void onEnable() {
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 (args.length != 1) {
sender.sendMessage(ChatColor.RED + "Must have one argument.");
} 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;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment