SteamWar/FightSystem
Archiviert
13
1

Block HullHider #416

Zusammengeführt
Lixfel hat 5 Commits von blockHullHider nach master 2024-03-13 17:13:38 +01:00 zusammengeführt
3 geänderte Dateien mit 16 neuen und 10 gelöschten Zeilen
Nur Änderungen aus Commit c3bb34ed6b werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -27,7 +27,10 @@ import net.minecraft.core.SectionPosition;
import net.minecraft.network.protocol.game.PacketPlayOutBlockChange; import net.minecraft.network.protocol.game.PacketPlayOutBlockChange;
import net.minecraft.network.protocol.game.PacketPlayOutMultiBlockChange; import net.minecraft.network.protocol.game.PacketPlayOutMultiBlockChange;
import net.minecraft.world.level.block.state.IBlockData; import net.minecraft.world.level.block.state.IBlockData;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -36,20 +39,23 @@ public class HullHiderWrapper18 implements HullHiderWrapper {
private static final Reflection.MethodInvoker getState = Reflection.getTypedMethod(Reflection.getClass("{obc}.block.data.CraftBlockData"), "getState", IBlockData.class); private static final Reflection.MethodInvoker getState = Reflection.getTypedMethod(Reflection.getClass("{obc}.block.data.CraftBlockData"), "getState", IBlockData.class);
@Override @Override
public Object generateBlockChangePacket(List<Hull.IntVector> changes) { public Object generateBlockChangePacket(List<Hull.IntVector> changes) {
Object[] blockdata = new Object[changes.size()]; List<Object> blockdata = new ArrayList<>(changes.size());
for(int i = 0; i < changes.size(); i++) { changes.removeIf(change -> {
Hull.IntVector change = changes.get(i); //BlockData data = Config.world.getBlockData(change.getX(), change.getY(), change.getZ());
blockdata[i] = getState.invoke(Config.world.getBlockData(change.getX(), change.getY(), change.getZ())); BlockData data = Material.EMERALD_BLOCK.createBlockData();
} boolean unchanged = data.getMaterial() == Config.ObfuscateWith;
if(!unchanged)
blockdata.add(getState.invoke(data));
return unchanged;
});
return generateBlockChangePacket(changes, blockdata); return generateBlockChangePacket(changes, blockdata.toArray());
} }
private Object generateBlockChangePacket(List<Hull.IntVector> changes, Object[] blockdata) { private Object generateBlockChangePacket(List<Hull.IntVector> changes, Object[] blockdata) {
if(changes.size() > 1) { if(changes.size() > 1) {
Hull.IntVector section = changes.get(0); Hull.IntVector section = changes.get(0);
//section = new Hull.IntVector(ProtocolUtils.posToChunk(section.getX()), ProtocolUtils.posToChunk(section.getY()), ProtocolUtils.posToChunk(section.getZ()));
section = new Hull.IntVector(section.getX() >> 4, section.getY() >> 4, section.getZ() >> 4); section = new Hull.IntVector(section.getX() >> 4, section.getY() >> 4, section.getZ() >> 4);
int xOffset = 16*section.getX(); int xOffset = 16*section.getX();
int yOffset = 16*section.getY(); int yOffset = 16*section.getY();

Datei anzeigen

@ -122,7 +122,7 @@ public class Config {
public static final boolean TechhiderActive; public static final boolean TechhiderActive;
public static final Set<Material> HiddenBlocks; public static final Set<Material> HiddenBlocks;
public static final Set<String> HiddenBlockEntities; public static final Set<String> HiddenBlockEntities;
public static final String ObfuscateWith; public static final Material ObfuscateWith;
//event parameter //event parameter
private static final int EventKampfID; private static final int EventKampfID;
@ -213,7 +213,7 @@ public class Config {
ForbiddenItems = Collections.unmodifiableSet(config.getStringList("Kits.ForbiddenItems").stream().map(Material::valueOf).collect(Collectors.toSet())); ForbiddenItems = Collections.unmodifiableSet(config.getStringList("Kits.ForbiddenItems").stream().map(Material::valueOf).collect(Collectors.toSet()));
TechhiderActive = config.getBoolean("Techhider.Active", false); TechhiderActive = config.getBoolean("Techhider.Active", false);
ObfuscateWith = config.getString("Techhider.ObfuscateWith", "end_stone").toUpperCase(); ObfuscateWith = Material.getMaterial(config.getString("Techhider.ObfuscateWith", "end_stone").toUpperCase());
HiddenBlocks = config.getStringList("Techhider.HiddenBlocks").stream().map(String::toUpperCase).map(Material::getMaterial).collect(Collectors.toSet()); HiddenBlocks = config.getStringList("Techhider.HiddenBlocks").stream().map(String::toUpperCase).map(Material::getMaterial).collect(Collectors.toSet());
HiddenBlockEntities = Collections.unmodifiableSet(new HashSet<>(config.getStringList("Techhider.HiddenBlockEntities"))); HiddenBlockEntities = Collections.unmodifiableSet(new HashSet<>(config.getStringList("Techhider.HiddenBlockEntities")));

Datei anzeigen

@ -89,7 +89,7 @@ public class PacketProcessor implements Listener {
private final BukkitTask task; private final BukkitTask task;
private final LinkedList<Runnable> syncList = new LinkedList<>(); private final LinkedList<Runnable> syncList = new LinkedList<>();
private final Set<Integer> hiddenBlockIds = Config.HiddenBlocks.stream().flatMap(m -> BlockIds.impl.materialToAllIds(m).stream()).collect(Collectors.toSet()); private final Set<Integer> hiddenBlockIds = Config.HiddenBlocks.stream().flatMap(m -> BlockIds.impl.materialToAllIds(m).stream()).collect(Collectors.toSet());
private final int obfuscateWith = BlockIds.impl.materialToId(Material.getMaterial(Config.ObfuscateWith.toUpperCase())); private final int obfuscateWith = BlockIds.impl.materialToId(Config.ObfuscateWith);
private final FreezeWorld freezer = new FreezeWorld(); private final FreezeWorld freezer = new FreezeWorld();
private final REntityServer entityServer = new REntityServer(); private final REntityServer entityServer = new REntityServer();
private final Map<Integer, REntity> entities = new HashMap<>(); private final Map<Integer, REntity> entities = new HashMap<>();