TF-WorldGuardExtraFlagsPlugin/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/RemoveEffectPacketListener.java
isokissa3 78add0a96f Fixed nether-portals flag on 1.14
This needs clean up later...
2019-08-05 22:17:40 +03:00

48 lines
1.3 KiB
Java

package net.goldtreeservers.worldguardextraflags.protocollib;
import org.bukkit.entity.Player;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketEvent;
import com.sk89q.worldguard.session.Session;
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
import net.goldtreeservers.worldguardextraflags.wg.handlers.GiveEffectsFlagHandler;
public class RemoveEffectPacketListener extends PacketAdapter
{
public RemoveEffectPacketListener()
{
super(WorldGuardExtraFlagsPlugin.getPlugin(), PacketType.Play.Server.REMOVE_ENTITY_EFFECT);
}
@Override
public void onPacketSending(PacketEvent event)
{
if (!event.isCancelled())
{
Player player = event.getPlayer();
if (!player.isValid()) //Work around, getIfPresent is broken inside WG due to using LocalPlayer as key instead of CacheKey
{
return;
}
try
{
Session session = WorldGuardExtraFlagsPlugin.getPlugin().getWorldGuardCommunicator().getSessionManager().get(player);
GiveEffectsFlagHandler giveEffectsHandler = session.getHandler(GiveEffectsFlagHandler.class);
if (giveEffectsHandler.isSupressRemovePotionPacket())
{
event.setCancelled(true);
}
}
catch(IllegalStateException wgBug)
{
}
}
}
}