Merge pull request #4 from MrMicky-FR/master

Remove collisions with NPC on 1.9+ servers + Remove PlayerKickEvent
This commit is contained in:
Jitse Boonstra
2018-04-23 13:29:37 +02:00
committed by GitHub
8 changed files with 28 additions and 46 deletions
+2 -4
View File
@@ -7,8 +7,7 @@ package net.jitse.npclib;
import net.jitse.npclib.api.NPC;
import net.jitse.npclib.listeners.ChunkListener;
import net.jitse.npclib.listeners.PacketListener;
import net.jitse.npclib.listeners.PlayerLeaveListener;
import net.jitse.npclib.listeners.PlayerMoveListener;
import net.jitse.npclib.listeners.PlayerListener;
import net.jitse.npclib.skin.Skin;
import net.jitse.npclib.version.Version;
import org.bukkit.ChatColor;
@@ -48,8 +47,7 @@ public class NPCLib {
private void registerInternal() {
PluginManager pluginManager = server.getPluginManager();
pluginManager.registerEvents(new PlayerMoveListener(), plugin);
pluginManager.registerEvents(new PlayerLeaveListener(), plugin);
pluginManager.registerEvents(new PlayerListener(), plugin);
pluginManager.registerEvents(new ChunkListener(), plugin);
new PacketListener().start(plugin);
@@ -1,41 +0,0 @@
/*
* Copyright (c) 2018 Jitse Boonstra
*/
package net.jitse.npclib.listeners;
import net.jitse.npclib.NPCManager;
import net.jitse.npclib.api.NPC;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerQuitEvent;
/**
* @author Jitse Boonstra
*/
public class PlayerLeaveListener implements Listener {
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
handleEvent(event.getPlayer());
}
@EventHandler
public void onPlayerKick(PlayerKickEvent event) {
handleEvent(event.getPlayer());
}
private void handleEvent(Player player) {
for (NPC npc : NPCManager.getAllNPCs()) {
if (npc.getAutoHidden().contains(player.getUniqueId())) {
npc.getAutoHidden().remove(player.getUniqueId());
}
if (npc.isActuallyShown(player)) {
npc.hide(player);
}
}
}
}
@@ -12,12 +12,27 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
/**
* @author Jitse Boonstra
*/
public class PlayerMoveListener implements Listener {
public class PlayerListener implements Listener {
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
for (NPC npc : NPCManager.getAllNPCs()) {
if (npc.getAutoHidden().contains(player.getUniqueId())) {
npc.getAutoHidden().remove(player.getUniqueId());
}
if (npc.isActuallyShown(player)) {
npc.hide(player);
}
}
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) {
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
.set(packetPlayOutScoreboardTeam, name);
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
.set(packetPlayOutScoreboardTeam, 0);
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
.set(packetPlayOutScoreboardTeam, name);
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
.set(packetPlayOutScoreboardTeam, 0);
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
.set(packetPlayOutScoreboardTeam, name);
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
.set(packetPlayOutScoreboardTeam, 0);
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
.set(packetPlayOutScoreboardTeam, name);
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
.set(packetPlayOutScoreboardTeam, 0);
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
.set(packetPlayOutScoreboardTeam, name);
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
.set(packetPlayOutScoreboardTeam, "never");
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
.set(packetPlayOutScoreboardTeam, 0);
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(