forked from SteamWar/SteamWar
Ensure parity with old techhider by suppressing select packets
This commit is contained in:
@@ -37,6 +37,7 @@ import net.minecraft.core.registries.BuiltInRegistries;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.craftbukkit.CraftWorld;
|
import org.bukkit.craftbukkit.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
|
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -108,6 +109,11 @@ public class TechHiderWrapper extends StateDependent implements Listener {
|
|||||||
Region hiddenRegion = getHiddenRegion(p);
|
Region hiddenRegion = getHiddenRegion(p);
|
||||||
return !hiddenRegion.inRegion(blockX, blockY, blockZ) || !blockEntityTypeToObfuscate.contains(type);
|
return !hiddenRegion.inRegion(blockX, blockY, blockZ) || !blockEntityTypeToObfuscate.contains(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPlayerPrivalegedToPerformAction(Player p) {
|
||||||
|
return !(p.getGameMode() == GameMode.SPECTATOR);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
new StateDependentListener(ENABLED, FightState.All, this);
|
new StateDependentListener(ENABLED, FightState.All, this);
|
||||||
|
|||||||
@@ -28,4 +28,5 @@ public interface AccessPrivilegeProvider {
|
|||||||
boolean isPlayerPrivilegedToAccessBlock(Player p, int blockX, int blockY, int blockZ, Block block);
|
boolean isPlayerPrivilegedToAccessBlock(Player p, int blockX, int blockY, int blockZ, Block block);
|
||||||
boolean isPlayerPrivilegedToAccessEntity(Player p, int entityId);
|
boolean isPlayerPrivilegedToAccessEntity(Player p, int entityId);
|
||||||
boolean isPlayerPrivilegedToAccessBlockEntity(Player p, int blockX, int blockY, int blockZ, BlockEntityType<?> type);
|
boolean isPlayerPrivilegedToAccessBlockEntity(Player p, int blockX, int blockY, int blockZ, BlockEntityType<?> type);
|
||||||
|
boolean isPlayerPrivalegedToPerformAction(Player p);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -331,6 +331,9 @@ public abstract class TechHider implements AccessPrivilegeProvider {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TinyProtocol.instance.addFilter(ServerboundUseItemOnPacket.class, (p, packet) -> isPlayerPrivalegedToPerformAction(p) ? packet : null);
|
||||||
|
TinyProtocol.instance.addFilter(ServerboundInteractPacket.class, (p, packet) -> isPlayerPrivalegedToPerformAction(p) ? packet : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Packet<?> processPacket(Player player, Packet<?> packet) {
|
private Packet<?> processPacket(Player player, Packet<?> packet) {
|
||||||
@@ -563,4 +566,5 @@ public abstract class TechHider implements AccessPrivilegeProvider {
|
|||||||
public abstract boolean isPlayerPrivilegedToAccessBlock(Player p, int blockX, int blockY, int blockZ, Block block);
|
public abstract boolean isPlayerPrivilegedToAccessBlock(Player p, int blockX, int blockY, int blockZ, Block block);
|
||||||
public abstract boolean isPlayerPrivilegedToAccessEntity(Player p, int entityId);
|
public abstract boolean isPlayerPrivilegedToAccessEntity(Player p, int entityId);
|
||||||
public abstract boolean isPlayerPrivilegedToAccessBlockEntity(Player p, int blockX, int blockY, int blockZ, BlockEntityType<?> type);
|
public abstract boolean isPlayerPrivilegedToAccessBlockEntity(Player p, int blockX, int blockY, int blockZ, BlockEntityType<?> type);
|
||||||
|
public abstract boolean isPlayerPrivalegedToPerformAction(Player p);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user