geforkt von Mirrors/AxiomPaperPlugin
backport1.20.1 #6
@ -8,7 +8,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "com.moulberry.axiom"
|
||||
version = "1.5.1"
|
||||
version = "1.5.2"
|
||||
description = "Serverside component for Axiom on Paper"
|
||||
|
||||
java {
|
||||
|
@ -93,6 +93,9 @@ public class RequestChunkDataPacketListener implements PluginMessageListener {
|
||||
int playerSectionZ = player.getBlockZ() >> 4;
|
||||
|
||||
Long2ObjectMap<PalettedContainer<BlockState>> sections = new Long2ObjectOpenHashMap<>();
|
||||
|
||||
int maxChunkLoadDistance = this.plugin.configuration.getInt("max-chunk-load-distance");
|
||||
if (maxChunkLoadDistance > 0) {
|
||||
count = friendlyByteBuf.readVarInt();
|
||||
for (int i = 0; i < count; i++) {
|
||||
long pos = friendlyByteBuf.readLong();
|
||||
@ -102,7 +105,7 @@ public class RequestChunkDataPacketListener implements PluginMessageListener {
|
||||
int sz = BlockPos.getZ(pos);
|
||||
|
||||
int distance = Math.abs(playerSectionX - sx) + Math.abs(playerSectionZ - sz);
|
||||
if (distance > 128) continue;
|
||||
if (distance > maxChunkLoadDistance) continue;
|
||||
|
||||
LevelChunk chunk = level.getChunk(sx, sz);
|
||||
int sectionIndex = chunk.getSectionIndexFromSectionY(sy);
|
||||
@ -134,7 +137,7 @@ public class RequestChunkDataPacketListener implements PluginMessageListener {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Send response packet
|
||||
|
||||
|
@ -38,7 +38,6 @@ import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class SetBlockPacketListener implements PluginMessageListener {
|
||||
|
||||
|
@ -38,6 +38,12 @@ public class TeleportPacketListener implements PluginMessageListener {
|
||||
World world = Bukkit.getWorld(namespacedKey);
|
||||
if (world == null) return;
|
||||
|
||||
// Prevent teleport based on config value
|
||||
boolean allowTeleportBetweenWorlds = this.plugin.configuration.getBoolean("allow-teleport-between-worlds");
|
||||
if (!allowTeleportBetweenWorlds && world != player.getWorld()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Call event
|
||||
AxiomTeleportEvent teleportEvent = new AxiomTeleportEvent(player, new Location(world, x, y, z, yRot, xRot));
|
||||
Bukkit.getPluginManager().callEvent(teleportEvent);
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren