* PacketManager micro optimization with the channel caching

* Player ejected when they leave
This commit is contained in:
retrooper committed 2020-12-01 16:12:42 +01:00
1 parent 4078418376
commit 052a65f6ef
3 files changed
+8 -5

No files matched your search

@@ -305,5 +305,6 @@ public final class PacketEvents implements Listener, EventManager {
getPlayerUtils().clientVersionsMap.remove(channel);
getPlayerUtils().playerPingMap.remove(uuid);
getPlayerUtils().playerSmoothedPingMap.remove(uuid);
packetManager.ejectPlayer(e.getPlayer());
}
}
@@ -25,9 +25,6 @@
package io.github.retrooper.packetevents.example;
import io.github.retrooper.packetevents.PacketEvents;
import io.github.retrooper.packetevents.event.PacketListenerDynamic;
import io.github.retrooper.packetevents.event.impl.PostPlayerInjectEvent;
import io.github.retrooper.packetevents.event.priority.PacketEventPriority;
import org.bukkit.plugin.java.JavaPlugin;
public class MainExample extends JavaPlugin {
@@ -76,8 +76,9 @@ public class PacketManager {
public Object getChannel(String name) {
Object channel = channelMap.get(name);
if(channel == null) {
channelMap.put(name, NMSUtils.getChannel(Bukkit.getPlayer(name)));
return channelMap.get(name);
channel = NMSUtils.getChannel(Bukkit.getPlayer(name));
channelMap.put(name, channel);
return channel;
}
return channel;
}
@@ -132,6 +133,8 @@ public class PacketManager {
} else {
Objects.requireNonNull(lateInjector).ejectPlayerSync(player);
}
firstPacketCache.remove(getChannel(player.getName()));
channelMap.remove(player.getName());
}
}
@@ -145,6 +148,8 @@ public class PacketManager {
} else {
Objects.requireNonNull(lateInjector).ejectPlayerAsync(player);
}
firstPacketCache.remove(getChannel(player.getName()));
channelMap.remove(player.getName());
}
}