Updating stuffs

This commit is contained in:
Dawson
2023-03-24 10:48:18 -04:00
parent 79fa2a9913
commit 5d288164c2
6 changed files with 36 additions and 26 deletions
@@ -5,6 +5,7 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
import dev.brighten.ac.api.AnticheatAPI;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckManager;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.data.PlayerRegistry;
import dev.brighten.ac.depends.LibraryLoader;
import dev.brighten.ac.depends.MavenLibrary;
@@ -32,7 +33,9 @@ import dev.brighten.loader.LoaderPlugin;
import lombok.Getter;
import lombok.experimental.PackagePrivate;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import java.io.File;
@@ -166,6 +169,29 @@ public class Anticheat extends LoaderPlugin {
logManager = new LoggerManager();
this.actionManager = new ActionManager();
int chunkDistance = Bukkit.getViewDistance() * 2 + 1;
// Created players on server reload
if(playerRegistry.aplayerMap.size() > 0) {
getLogger().warning("Players are online, resending chunk map to players so anticheat is up to date.");
for (APlayer aplayer : playerRegistry.aplayerMap.values()) {
Player player = aplayer.getBukkitPlayer();
getLogger().info("Sending chunks to " + player.getName());
int chunkX = player.getLocation().getBlockX() >> 4,
chunkZ = player.getLocation().getBlockZ() >> 4;
for (int x = chunkX - chunkDistance; x <= chunkX + chunkDistance; x++) {
for (int z = chunkZ - chunkDistance; z <= chunkZ + chunkDistance; z++) {
Chunk chunk = player.getWorld().getChunkAt(x, z);
Object mapChunk = packetProcessor.getPacketConverter().createMapChunk(chunk);
aplayer.sendPacket(mapChunk);
}
}
}
}
keepaliveProcessor.start();
logManager.init();
@@ -14,7 +14,7 @@ public class InventoryClickMove extends Check {
super(player);
}
private int lastWindowClick = Integer.MAX_VALUE;
private int lastWindowClick = -2;
// Updating the last time the player clicked in a menu for use in the below check for positional movement.
WAction<WPacketPlayInWindowClick> windowClick = packet -> lastWindowClick = player.getPlayerTick();
@@ -113,8 +113,6 @@ public class PlayerRegistry {
unregister(player.getUniqueId());
}
synchronized (aplayerMap) {
APlayer aplayer = new APlayer(player);
aplayerMap.put(player.getUniqueId().hashCode(), aplayer);
@@ -21,6 +21,7 @@ import org.bukkit.block.BlockFace;
import java.util.Optional;
@SuppressWarnings("unused")
@RequiredArgsConstructor
public class BlockUpdateHandler {
private final Long2ObjectOpenHashMap<Chunk> chunks = new Long2ObjectOpenHashMap<>(1000);
@@ -118,25 +119,8 @@ public class BlockUpdateHandler {
Optional<WrappedBlock> blockOptional = chunk.getBlockAt(x, y, z);
WrappedBlock block;
if (blockOptional.isEmpty()) {
Optional<Block> bukkitBlock = BlockUtils.getBlockAsync(
new Location(player.getBukkitPlayer().getWorld(), x, y, z));
IntVector loc = new IntVector(x, y, z);
if (bukkitBlock.isPresent()) {
Location bloc = bukkitBlock.get().getLocation();
block = new WrappedBlock(bloc,
bukkitBlock.get().getType(), bukkitBlock.get().getData());
} else {
block = new WrappedBlock(loc
.toLocation(player.getBukkitPlayer().getWorld()), Material.AIR, (byte) 0);
}
} else block = blockOptional.get();
return block;
return blockOptional.orElseGet(() -> new WrappedBlock(new IntVector(x, y, z)
.toLocation(player.getBukkitPlayer().getWorld()), Material.AIR, (byte) 0));
}
/**
@@ -3,6 +3,7 @@ package dev.brighten.ac.packet.wrapper;
import dev.brighten.ac.packet.wrapper.in.*;
import dev.brighten.ac.packet.wrapper.login.WPacketHandshakingInSetProtocol;
import dev.brighten.ac.packet.wrapper.out.*;
import org.bukkit.Chunk;
public interface PacketConverter {
WPacketPlayInFlying processFlying(Object object);
@@ -89,7 +90,7 @@ public interface PacketConverter {
WPacketPlayOutMapChunk processMapChunk(Object object);
Object processMapChunk(WPacketPlayOutMapChunk packet);
Object createMapChunk(Chunk chunk);
WPacketPlayOutMapChunkBulk processMapChunkBulk(Object packet);
@@ -19,7 +19,9 @@ import lombok.SneakyThrows;
import lombok.val;
import me.hydro.emulator.util.mcp.MathHelper;
import net.minecraft.server.v1_8_R3.*;
import org.bukkit.Chunk;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_8_R3.CraftChunk;
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_8_R3.util.CraftMagicNumbers;
import org.bukkit.entity.EntityType;
@@ -766,9 +768,8 @@ public class Processor_18 implements PacketConverter {
}
@Override
public Object processMapChunk(WPacketPlayOutMapChunk packet) {
PacketPlayOutMapChunk vanilla = new PacketPlayOutMapChunk();
return null;
public Object createMapChunk(Chunk chunk) {
return new PacketPlayOutMapChunk(((CraftChunk)chunk).getHandle(), true, 20);
}
@Override