geforkt von Mirrors/Paper
Readd 0414 use distance map to optimise entity tracker (#9868)
Dieser Commit ist enthalten in:
Ursprung
8493340be4
Commit
487109fddc
@ -6,10 +6,10 @@ Subject: [PATCH] Use distance map to optimise entity tracker
|
|||||||
Use the distance map to find candidate players for tracking.
|
Use the distance map to find candidate players for tracking.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43bc2900b23 100644
|
index c10ef2e6af3e6c52eeb8c96cdbf5352d9dd25dd2..3e54982bc60f5368e3515cf337f23d6803f4c967 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -157,6 +157,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -147,6 +147,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
|
|
||||||
// Paper start - distance maps
|
// Paper start - distance maps
|
||||||
private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets<ServerPlayer> pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>();
|
private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets<ServerPlayer> pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>();
|
||||||
@ -32,11 +32,11 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
+ // Paper end - use distance map to optimise tracker
|
+ // Paper end - use distance map to optimise tracker
|
||||||
|
|
||||||
void addPlayerToDistanceMaps(ServerPlayer player) {
|
void addPlayerToDistanceMaps(ServerPlayer player) {
|
||||||
|
int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX());
|
||||||
|
@@ -154,6 +171,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
|
// Note: players need to be explicitly added to distance maps before they can be updated
|
||||||
|
this.nearbyPlayers.addPlayer(player);
|
||||||
this.level.playerChunkLoader.addPlayer(player); // Paper - replace chunk loader
|
this.level.playerChunkLoader.addPlayer(player); // Paper - replace chunk loader
|
||||||
@@ -168,6 +185,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
|
||||||
this.playerMobDistanceMap.add(player, chunkX, chunkZ, io.papermc.paper.chunk.system.ChunkSystem.getTickViewDistance(player));
|
|
||||||
}
|
|
||||||
// Paper end - per player mob spawning
|
|
||||||
+ // Paper start - use distance map to optimise entity tracker
|
+ // Paper start - use distance map to optimise entity tracker
|
||||||
+ for (int i = 0, len = TRACKING_RANGE_TYPES.length; i < len; ++i) {
|
+ for (int i = 0, len = TRACKING_RANGE_TYPES.length; i < len; ++i) {
|
||||||
+ com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
|
+ com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
|
||||||
@ -48,10 +48,10 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
}
|
}
|
||||||
|
|
||||||
void removePlayerFromDistanceMaps(ServerPlayer player) {
|
void removePlayerFromDistanceMaps(ServerPlayer player) {
|
||||||
@@ -178,6 +203,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -162,6 +187,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
this.playerMobDistanceMap.remove(player);
|
// Note: players need to be explicitly added to distance maps before they can be updated
|
||||||
}
|
this.nearbyPlayers.removePlayer(player);
|
||||||
// Paper end - per player mob spawning
|
this.level.playerChunkLoader.removePlayer(player); // Paper - replace chunk loader
|
||||||
+ // Paper start - use distance map to optimise tracker
|
+ // Paper start - use distance map to optimise tracker
|
||||||
+ for (int i = 0, len = TRACKING_RANGE_TYPES.length; i < len; ++i) {
|
+ for (int i = 0, len = TRACKING_RANGE_TYPES.length; i < len; ++i) {
|
||||||
+ this.playerEntityTrackerTrackMaps[i].remove(player);
|
+ this.playerEntityTrackerTrackMaps[i].remove(player);
|
||||||
@ -60,10 +60,10 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
}
|
}
|
||||||
|
|
||||||
void updateMaps(ServerPlayer player) {
|
void updateMaps(ServerPlayer player) {
|
||||||
@@ -190,6 +220,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -170,6 +200,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
this.playerMobDistanceMap.update(player, chunkX, chunkZ, io.papermc.paper.chunk.system.ChunkSystem.getTickViewDistance(player));
|
// Note: players need to be explicitly added to distance maps before they can be updated
|
||||||
}
|
this.nearbyPlayers.tickPlayer(player);
|
||||||
// Paper end - per player mob spawning
|
this.level.playerChunkLoader.updatePlayer(player); // Paper - replace chunk loader
|
||||||
+ // Paper start - use distance map to optimise entity tracker
|
+ // Paper start - use distance map to optimise entity tracker
|
||||||
+ for (int i = 0, len = TRACKING_RANGE_TYPES.length; i < len; ++i) {
|
+ for (int i = 0, len = TRACKING_RANGE_TYPES.length; i < len; ++i) {
|
||||||
+ com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
|
+ com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
|
||||||
@ -75,10 +75,10 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -276,6 +314,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -257,6 +295,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
this.regionManagers.add(this.dataRegionManager);
|
this.regionManagers.add(this.dataRegionManager);
|
||||||
|
this.nearbyPlayers = new io.papermc.paper.util.player.NearbyPlayers(this.level);
|
||||||
// Paper end
|
// Paper end
|
||||||
this.playerMobDistanceMap = this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets) : null; // Paper
|
|
||||||
+ // Paper start - use distance map to optimise entity tracker
|
+ // Paper start - use distance map to optimise entity tracker
|
||||||
+ this.playerEntityTrackerTrackMaps = new com.destroystokyo.paper.util.misc.PlayerAreaMap[TRACKING_RANGE_TYPES.length];
|
+ this.playerEntityTrackerTrackMaps = new com.destroystokyo.paper.util.misc.PlayerAreaMap[TRACKING_RANGE_TYPES.length];
|
||||||
+ this.entityTrackerTrackRanges = new int[TRACKING_RANGE_TYPES.length];
|
+ this.entityTrackerTrackRanges = new int[TRACKING_RANGE_TYPES.length];
|
||||||
@ -123,8 +123,8 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
+ // Paper end - use distance map to optimise entity tracker
|
+ // Paper end - use distance map to optimise entity tracker
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ChunkGenerator generator() {
|
// Paper start
|
||||||
@@ -960,17 +1040,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -930,17 +1010,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
public void move(ServerPlayer player) {
|
public void move(ServerPlayer player) {
|
||||||
@ -141,9 +141,9 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
- }
|
- }
|
||||||
+ // Paper - delay this logic for the entity tracker tick, no need to duplicate it
|
+ // Paper - delay this logic for the entity tracker tick, no need to duplicate it
|
||||||
|
|
||||||
int i = SectionPos.blockToSectionCoord(player.getBlockX());
|
SectionPos sectionposition = player.getLastSectionPos();
|
||||||
int j = SectionPos.blockToSectionCoord(player.getBlockZ());
|
SectionPos sectionposition1 = SectionPos.of((EntityAccess) player);
|
||||||
@@ -1054,7 +1124,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -1017,7 +1087,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
|
|
||||||
entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker
|
entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker
|
||||||
this.entityMap.put(entity.getId(), playerchunkmap_entitytracker);
|
this.entityMap.put(entity.getId(), playerchunkmap_entitytracker);
|
||||||
@ -152,10 +152,12 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
if (entity instanceof ServerPlayer) {
|
if (entity instanceof ServerPlayer) {
|
||||||
ServerPlayer entityplayer = (ServerPlayer) entity;
|
ServerPlayer entityplayer = (ServerPlayer) entity;
|
||||||
|
|
||||||
@@ -1098,7 +1168,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -1061,9 +1131,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
entity.tracker = null; // Paper - We're no longer tracked
|
entity.tracker = null; // Paper - We're no longer tracked
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- protected void tick() {
|
||||||
|
- // Paper - replaced by PlayerChunkLoader
|
||||||
+ // Paper start - optimised tracker
|
+ // Paper start - optimised tracker
|
||||||
+ private final void processTrackQueue() {
|
+ private final void processTrackQueue() {
|
||||||
+ this.level.timings.tracker1.startTiming();
|
+ this.level.timings.tracker1.startTiming();
|
||||||
@ -179,8 +181,8 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - optimised tracker
|
+ // Paper end - optimised tracker
|
||||||
+
|
|
||||||
protected void tick() {
|
+ protected void tick() {
|
||||||
+ // Paper start - optimized tracker
|
+ // Paper start - optimized tracker
|
||||||
+ if (true) {
|
+ if (true) {
|
||||||
+ this.processTrackQueue();
|
+ this.processTrackQueue();
|
||||||
@ -190,55 +192,7 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
List<ServerPlayer> list = Lists.newArrayList();
|
List<ServerPlayer> list = Lists.newArrayList();
|
||||||
List<ServerPlayer> list1 = this.level.players();
|
List<ServerPlayer> list1 = this.level.players();
|
||||||
ObjectIterator objectiterator = this.entityMap.values().iterator();
|
ObjectIterator objectiterator = this.entityMap.values().iterator();
|
||||||
@@ -1205,46 +1305,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -1213,6 +1311,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
}));
|
|
||||||
// Paper end
|
|
||||||
DebugPackets.sendPoiPacketsForChunk(this.level, chunk.getPos());
|
|
||||||
- List<Entity> list = Lists.newArrayList();
|
|
||||||
- List<Entity> list1 = Lists.newArrayList();
|
|
||||||
- ObjectIterator objectiterator = this.entityMap.values().iterator();
|
|
||||||
-
|
|
||||||
- while (objectiterator.hasNext()) {
|
|
||||||
- ChunkMap.TrackedEntity playerchunkmap_entitytracker = (ChunkMap.TrackedEntity) objectiterator.next();
|
|
||||||
- Entity entity = playerchunkmap_entitytracker.entity;
|
|
||||||
-
|
|
||||||
- if (entity != player && entity.chunkPosition().equals(chunk.getPos())) {
|
|
||||||
- playerchunkmap_entitytracker.updatePlayer(player);
|
|
||||||
- if (entity instanceof Mob && ((Mob) entity).getLeashHolder() != null) {
|
|
||||||
- list.add(entity);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (!entity.getPassengers().isEmpty()) {
|
|
||||||
- list1.add(entity);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- Iterator iterator;
|
|
||||||
- Entity entity1;
|
|
||||||
-
|
|
||||||
- if (!list.isEmpty()) {
|
|
||||||
- iterator = list.iterator();
|
|
||||||
-
|
|
||||||
- while (iterator.hasNext()) {
|
|
||||||
- entity1 = (Entity) iterator.next();
|
|
||||||
- player.connection.send(new ClientboundSetEntityLinkPacket(entity1, ((Mob) entity1).getLeashHolder()));
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (!list1.isEmpty()) {
|
|
||||||
- iterator = list1.iterator();
|
|
||||||
-
|
|
||||||
- while (iterator.hasNext()) {
|
|
||||||
- entity1 = (Entity) iterator.next();
|
|
||||||
- player.connection.send(new ClientboundSetPassengersPacket(entity1));
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
+ // Paper - no longer needed - this was used to account for clients bugging out since they needed a chunk to store entities, but they no longer need a chunk
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1299,6 +1360,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
|
||||||
this.lastSectionPos = SectionPos.of((EntityAccess) entity);
|
this.lastSectionPos = SectionPos.of((EntityAccess) entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,10 +236,10 @@ index dadf403ac91887f0fae87889170deb6d5732cbc1..52d9d0f2366f292c56eee9fe241cb43b
|
|||||||
return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false;
|
return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index ce4b2ec2ad6138b754ced976521d1c73eb4193a8..c99d24008792b07d5e2984261215de944482006b 100644
|
index 1d2dd9b8ae43f22d875cb530130118df247b87dc..b80e8f05a8f99cc912904470c31092faad0717da 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -57,6 +57,7 @@ import net.minecraft.network.syncher.EntityDataSerializers;
|
@@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
import net.minecraft.network.syncher.SynchedEntityData;
|
import net.minecraft.network.syncher.SynchedEntityData;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
@ -5,10 +5,10 @@ Subject: [PATCH] Ensure Entity AABB's are never invalid
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 1d2dd9b8ae43f22d875cb530130118df247b87dc..d4d151fd8b500e32ca5c0f866bd28d3b5cf68633 100644
|
index b80e8f05a8f99cc912904470c31092faad0717da..f2faddf78b5ea591f66d92d9e0f2b7984a3c2124 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -688,8 +688,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -721,8 +721,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPos(double x, double y, double z) {
|
public void setPos(double x, double y, double z) {
|
||||||
@ -19,7 +19,7 @@ index 1d2dd9b8ae43f22d875cb530130118df247b87dc..d4d151fd8b500e32ca5c0f866bd28d3b
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected AABB makeBoundingBox() {
|
protected AABB makeBoundingBox() {
|
||||||
@@ -4190,6 +4190,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -4223,6 +4223,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setPosRaw(double x, double y, double z) {
|
public final void setPosRaw(double x, double y, double z) {
|
||||||
@ -31,7 +31,7 @@ index 1d2dd9b8ae43f22d875cb530130118df247b87dc..d4d151fd8b500e32ca5c0f866bd28d3b
|
|||||||
// Paper start - rewrite chunk system
|
// Paper start - rewrite chunk system
|
||||||
if (this.updatingSectionStatus) {
|
if (this.updatingSectionStatus) {
|
||||||
LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable());
|
LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable());
|
||||||
@@ -4213,6 +4218,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -4246,6 +4251,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
this.levelCallback.onMove();
|
this.levelCallback.onMove();
|
||||||
}
|
}
|
||||||
|
|
@ -76,7 +76,7 @@ index 474492c3f02f99e801885a983b9c110a8656c7b5..6d7095a62f30b18bc8fb8dbc5a0f3331
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index efce67fb84fe0586c586212bb3c02dd06f72371f..463b8cd52df5ca0d3168ef5c095dbc190b5956f4 100644
|
index 49d341605ac7e82c5dcdcc960b6581aa7e1fb8f3..a3c1797549e3b149f425f857bbf8564c5ef1e30e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -1204,7 +1204,7 @@ public class ServerPlayer extends Player {
|
@@ -1204,7 +1204,7 @@ public class ServerPlayer extends Player {
|
@ -115,7 +115,7 @@ index 8467ea174dd48010b94b3f3c84ce097ecbb2ef14..5826536978724b54080d7d4ee61aa798
|
|||||||
// Paper start - rewrite chunk system - add close param
|
// Paper start - rewrite chunk system - add close param
|
||||||
this.save(progressListener, flush, savingDisabled, false);
|
this.save(progressListener, flush, savingDisabled, false);
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 6de4e9f379fe0cb44f14fe68ae1dee55a73d2d99..4a4002b666c70c7065cad0743377cd13e443aa37 100644
|
index 6d411d6ccef650225f37275ec7c5033991408f25..4f98f80f6d8bebba33bad37fe6a722f778f93ed8 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -184,6 +184,7 @@ import org.bukkit.inventory.MainHand;
|
@@ -184,6 +184,7 @@ import org.bukkit.inventory.MainHand;
|
@ -9,7 +9,7 @@ instead of getting stuck in a never despawn state (bubble columns,
|
|||||||
etc).
|
etc).
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||||||
index c5512adfb2d38616bb741d03038158c379020ecf..f70f0764d9743dbfa2ead4c90d0df3dbc107672d 100644
|
index a8caa11bd0ef045b29cc3cb452dec9fd41948045..53de7f516aee20cb7b5db0648dea1c38d74e5d96 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||||||
@@ -200,6 +200,7 @@ public abstract class AbstractArrow extends Projectile {
|
@@ -200,6 +200,7 @@ public abstract class AbstractArrow extends Projectile {
|
@ -31,10 +31,10 @@ index c3844274b185decd92d021e7c7343adb56052cc6..3a85c81aceae20820e5630b745eadf01
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index d4d151fd8b500e32ca5c0f866bd28d3b5cf68633..b0a73ddd7438b9ecd4462638f9f784d796c62c6c 100644
|
index f2faddf78b5ea591f66d92d9e0f2b7984a3c2124..2d416d0d657667d857794bafa315c720dee9762a 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -158,6 +158,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -159,6 +159,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private static final int CURRENT_LEVEL = 2;
|
private static final int CURRENT_LEVEL = 2;
|
||||||
@ -42,7 +42,7 @@ index d4d151fd8b500e32ca5c0f866bd28d3b5cf68633..b0a73ddd7438b9ecd4462638f9f784d7
|
|||||||
static boolean isLevelAtLeast(CompoundTag tag, int level) {
|
static boolean isLevelAtLeast(CompoundTag tag, int level) {
|
||||||
return tag.contains("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
|
return tag.contains("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
|
||||||
}
|
}
|
||||||
@@ -1831,6 +1832,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -1864,6 +1865,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void moveTo(double x, double y, double z, float yaw, float pitch) {
|
public void moveTo(double x, double y, double z, float yaw, float pitch) {
|
@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index b0a73ddd7438b9ecd4462638f9f784d796c62c6c..71dc4112cb932c6b1305f0f22e99f069517cac08 100644
|
index 2d416d0d657667d857794bafa315c720dee9762a..c78df4fc62a347455f8d7b3aa186344863915ab3 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -4439,4 +4439,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -4472,4 +4472,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
|
|
||||||
void accept(Entity entity, double x, double y, double z);
|
void accept(Entity entity, double x, double y, double z);
|
||||||
}
|
}
|
@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 71dc4112cb932c6b1305f0f22e99f069517cac08..cfdc8c37d41473300ca9a8c251e27cb2a07ca4c7 100644
|
index c78df4fc62a347455f8d7b3aa186344863915ab3..658e47bf5aff1e56462cc3f0a87eeb7349654176 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -4444,5 +4444,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -4477,5 +4477,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
public static int nextEntityId() {
|
public static int nextEntityId() {
|
||||||
return ENTITY_COUNTER.incrementAndGet();
|
return ENTITY_COUNTER.incrementAndGet();
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ Subject: [PATCH] Player elytra boost API
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 28c80b15f83947cf44f71da9f9d971f2d6e5dd5b..a0ee2811d691f0088d94a308705dab5529d52810 100644
|
index 0656ea43e1d508d8f6af308475942c28d77655a4..aef0fa6fd575c08c75c75463abcc43089aada9e3 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -626,6 +626,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -626,6 +626,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@ -25,7 +25,7 @@ index f9d7fec242a059a3b056c569ffaf214a361716d6..33a3c657bd390b9e8bc23af93c1107f5
|
|||||||
Connection.LOGGER.debug("Failed to sent packet", throwable);
|
Connection.LOGGER.debug("Failed to sent packet", throwable);
|
||||||
if (this.getSending() == PacketFlow.CLIENTBOUND) {
|
if (this.getSending() == PacketFlow.CLIENTBOUND) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 54d0b44eba475f17a908e09d9b56a94a7f050672..bd944ce3308a931391777e3a468daee06d493c73 100644
|
index 48985c0577fe1a09838137286e32128b29a60552..9c74a7e1dc74873c16a0fc474de459ccec4d372d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -272,6 +272,7 @@ public class ServerPlayer extends Player {
|
@@ -272,6 +272,7 @@ public class ServerPlayer extends Player {
|
@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 45fa80f600f83f2235e39f5aa4ddb1eaa273d7cd..7392a6d58ec2c767b2982b928e7186eb8dda4cd4 100644
|
index e3d6fd978f1f64e980e5729a2ad2712f44923786..192981678ad54bf1b71db4d1f15e6884e88ecebb 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -2538,7 +2538,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -2538,7 +2538,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index cfdc8c37d41473300ca9a8c251e27cb2a07ca4c7..5705dd4c89c2e57540a2eaec0568e45e1947d8c6 100644
|
index 658e47bf5aff1e56462cc3f0a87eeb7349654176..c35d22e4d54abcb16b7ec932729d2f177fd4a14b 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -2024,6 +2024,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -2057,6 +2057,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPushable() {
|
public boolean isPushable() {
|
@ -28,10 +28,10 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..33d9131e9c75ef23cd637f5d6c39a270
|
|||||||
|
|
||||||
public Vec3 decode(long x, long y, long z) {
|
public Vec3 decode(long x, long y, long z) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 5705dd4c89c2e57540a2eaec0568e45e1947d8c6..0d96f40ca4d08197f101a31cca7e334525542565 100644
|
index c35d22e4d54abcb16b7ec932729d2f177fd4a14b..3acaa05743373b818ba70a0229c6afe63bfd1a97 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -4215,6 +4215,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -4248,6 +4248,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Paper end - rewrite chunk system
|
// Paper end - rewrite chunk system
|
Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden Mehr anzeigen
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren