Merge pull request #4 from MrMicky-FR/master
Remove collisions with NPC on 1.9+ servers + Remove PlayerKickEvent
This commit is contained in:
@@ -7,8 +7,7 @@ package net.jitse.npclib;
|
|||||||
import net.jitse.npclib.api.NPC;
|
import net.jitse.npclib.api.NPC;
|
||||||
import net.jitse.npclib.listeners.ChunkListener;
|
import net.jitse.npclib.listeners.ChunkListener;
|
||||||
import net.jitse.npclib.listeners.PacketListener;
|
import net.jitse.npclib.listeners.PacketListener;
|
||||||
import net.jitse.npclib.listeners.PlayerLeaveListener;
|
import net.jitse.npclib.listeners.PlayerListener;
|
||||||
import net.jitse.npclib.listeners.PlayerMoveListener;
|
|
||||||
import net.jitse.npclib.skin.Skin;
|
import net.jitse.npclib.skin.Skin;
|
||||||
import net.jitse.npclib.version.Version;
|
import net.jitse.npclib.version.Version;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@@ -48,8 +47,7 @@ public class NPCLib {
|
|||||||
private void registerInternal() {
|
private void registerInternal() {
|
||||||
PluginManager pluginManager = server.getPluginManager();
|
PluginManager pluginManager = server.getPluginManager();
|
||||||
|
|
||||||
pluginManager.registerEvents(new PlayerMoveListener(), plugin);
|
pluginManager.registerEvents(new PlayerListener(), plugin);
|
||||||
pluginManager.registerEvents(new PlayerLeaveListener(), plugin);
|
|
||||||
pluginManager.registerEvents(new ChunkListener(), plugin);
|
pluginManager.registerEvents(new ChunkListener(), plugin);
|
||||||
|
|
||||||
new PacketListener().start(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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+16
-1
@@ -12,12 +12,27 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Jitse Boonstra
|
* @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
|
@EventHandler
|
||||||
public void onPlayerMove(PlayerMoveEvent event) {
|
public void onPlayerMove(PlayerMoveEvent event) {
|
||||||
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
|
|||||||
.set(packetPlayOutScoreboardTeam, name);
|
.set(packetPlayOutScoreboardTeam, name);
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
||||||
.set(packetPlayOutScoreboardTeam, "never");
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
|
||||||
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
||||||
.set(packetPlayOutScoreboardTeam, 0);
|
.set(packetPlayOutScoreboardTeam, 0);
|
||||||
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
|
|||||||
.set(packetPlayOutScoreboardTeam, name);
|
.set(packetPlayOutScoreboardTeam, name);
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
||||||
.set(packetPlayOutScoreboardTeam, "never");
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
|
||||||
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
||||||
.set(packetPlayOutScoreboardTeam, 0);
|
.set(packetPlayOutScoreboardTeam, 0);
|
||||||
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
|
|||||||
.set(packetPlayOutScoreboardTeam, name);
|
.set(packetPlayOutScoreboardTeam, name);
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
||||||
.set(packetPlayOutScoreboardTeam, "never");
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
|
||||||
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
||||||
.set(packetPlayOutScoreboardTeam, 0);
|
.set(packetPlayOutScoreboardTeam, 0);
|
||||||
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
|
|||||||
.set(packetPlayOutScoreboardTeam, name);
|
.set(packetPlayOutScoreboardTeam, name);
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
||||||
.set(packetPlayOutScoreboardTeam, "never");
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
|
||||||
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
||||||
.set(packetPlayOutScoreboardTeam, 0);
|
.set(packetPlayOutScoreboardTeam, 0);
|
||||||
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public class PacketPlayOutScoreboardTeamWrapper {
|
|||||||
.set(packetPlayOutScoreboardTeam, name);
|
.set(packetPlayOutScoreboardTeam, name);
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
||||||
.set(packetPlayOutScoreboardTeam, "never");
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class)
|
||||||
|
.set(packetPlayOutScoreboardTeam, "never");
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
||||||
.set(packetPlayOutScoreboardTeam, 0);
|
.set(packetPlayOutScoreboardTeam, 0);
|
||||||
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
||||||
|
|||||||
Reference in New Issue
Block a user