Skip to content

Commit

Permalink
Optimize fakeplayer
Browse files Browse the repository at this point in the history
  • Loading branch information
s-yh-china committed Jul 11, 2023
1 parent 0fab274 commit e6d432f
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 16 deletions.
49 changes: 45 additions & 4 deletions patches/server/0008-Fakeplayer-support.patch
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ index acc49f66bf34e2507d0ee6fec0a56b11bfc68f46..7fc87841fd72fc9b5bca4fbdffd378c7
AdvancementProgress advancementprogress = this.getOrStartProgress(advancement);
boolean flag1 = advancementprogress.isDone();
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 9d46536f80b5b3e6641fd377c02166a431edfd77..7b355d55362a9cec4a70b77f04dbaabe2f273275 100644
index 9d46536f80b5b3e6641fd377c02166a431edfd77..40f6377b3aecb5217d5882bfa644475797a004c2 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -185,6 +185,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
Expand All @@ -69,7 +69,35 @@ index 9d46536f80b5b3e6641fd377c02166a431edfd77..7b355d55362a9cec4a70b77f04dbaabe
// CraftBukkit end

public class ServerPlayer extends Player {
@@ -742,7 +743,7 @@ public class ServerPlayer extends Player {
@@ -718,15 +719,19 @@ public class ServerPlayer extends Player {
}

// Paper start - Configurable container update tick rate
- if (--containerUpdateDelay <= 0) {
- this.containerMenu.broadcastChanges();
- containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate;
- }
- // Paper end
- if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - auto close while frozen
- this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
- this.containerMenu = this.inventoryMenu;
+ // Leaves start - skip bot
+ if (!(this instanceof ServerBot)) {
+ if (--containerUpdateDelay <= 0) {
+ this.containerMenu.broadcastChanges();
+ containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate;
+ }
+ // Paper end
+ if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - auto close while frozen
+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
+ this.containerMenu = this.inventoryMenu;
+ }
}
+ // Leaves end - skip bot

Entity entity = this.getCamera();

@@ -742,7 +747,7 @@ public class ServerPlayer extends Player {
}
}

Expand All @@ -78,7 +106,7 @@ index 9d46536f80b5b3e6641fd377c02166a431edfd77..7b355d55362a9cec4a70b77f04dbaabe
if (this.levitationStartPos != null) {
CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime);
}
@@ -1264,6 +1265,13 @@ public class ServerPlayer extends Player {
@@ -1264,6 +1269,13 @@ public class ServerPlayer extends Player {
this.lastSentHealth = -1.0F;
this.lastSentFood = -1;

Expand Down Expand Up @@ -167,6 +195,19 @@ index fff7ad7a45f310783ac96b44575ad3db13d537fa..c09c25b6594d4f6a937c6bbb80a75977
+ }
+ // Leaves end - fakeplayer support
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index e11d7283662834047b2ff81a2fd25a4263792deb..760ba7f0a5278dbb142a8415cb067f92aa5b6b17 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1358,7 +1358,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
player.setRealHealth(health);
}

- player.updateScaledHealth(false);
+ if (!(this instanceof top.leavesmc.leaves.bot.ServerBot)) player.updateScaledHealth(false); // Leaves - skip bot
return;
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
index b8c238287e0639b578170c6fec0d4db5a1a59fe7..d57e6c88524482b4d37930d0fd2e9f7911c6d3a0 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
Expand Down Expand Up @@ -245,7 +286,7 @@ index fc0dc8e607cc24020106ea1af92b4421a5f9393d..81670f76c4d7ccec6f9e95465687c83b
}
// Water Animals
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 95a94af3fb4a3de5fcae93cebe792129a88d9de1..09f6a097b2d16fc719b7a8f849850b9b402cdf91 100644
index 24bbcab59ebe153516e602180db0b0353b9dffde..59b1404270279bbfcf57e45b54a86d82f0346e23 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -7,6 +7,9 @@ import org.bukkit.Bukkit;
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0049-Player-operation-limiter.patch
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Subject: [PATCH] Player operation limiter
This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition)

diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 420175039254f780bf4415b4118bec8f6d3351e1..afcc518ff50066e846e9b1a79cb99dc25cac4f24 100644
index 40f6377b3aecb5217d5882bfa644475797a004c2..16b740f54e8343e06d2349389068e3c7a0714da0 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -278,6 +278,10 @@ public class ServerPlayer extends Player {
Expand All @@ -28,7 +28,7 @@ index 420175039254f780bf4415b4118bec8f6d3351e1..afcc518ff50066e846e9b1a79cb99dc2
this.gameMode.tick();
this.wardenSpawnTracker.tick();
--this.spawnInvulnerableTime;
@@ -2656,5 +2661,32 @@ public class ServerPlayer extends Player {
@@ -2660,5 +2665,32 @@ public class ServerPlayer extends Player {
public CraftPlayer getBukkitEntity() {
return (CraftPlayer) super.getBukkitEntity();
}
Expand Down Expand Up @@ -62,7 +62,7 @@ index 420175039254f780bf4415b4118bec8f6d3351e1..afcc518ff50066e846e9b1a79cb99dc2
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index 1635fee928d64f4d2c336dca6675ed4641918830..75596d91e011d27ccf59f5b7f41a8f3c76b059ca 100644
index 34ecfb89372f459117db99d57a7edd6f681bbe8a..a756bdbb7d40ea9d1d3f5ed7d9475e8c5ebbe529 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -44,6 +44,7 @@ import org.bukkit.event.Event;
Expand Down
8 changes: 4 additions & 4 deletions patches/server/0054-Return-nether-portal-fix.patch
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Subject: [PATCH] Return nether portal fix
This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix)

diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index f60fdf00078572d6aeb5257f622353aeac7ff862..48574d37929c7aeaec6b6f7b4887b13fbd54c11a 100644
index 16b740f54e8343e06d2349389068e3c7a0714da0..85a59fbbba1e9c14567f8cc294c27ce9640b73b7 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -186,6 +186,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
Expand All @@ -17,7 +17,7 @@ index f60fdf00078572d6aeb5257f622353aeac7ff862..48574d37929c7aeaec6b6f7b4887b13f
// CraftBukkit end

public class ServerPlayer extends Player {
@@ -1281,6 +1282,24 @@ public class ServerPlayer extends Player {
@@ -1285,6 +1286,24 @@ public class ServerPlayer extends Player {
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld());
this.level().getCraftServer().getPluginManager().callEvent(changeEvent);
// CraftBukkit end
Expand All @@ -42,7 +42,7 @@ index f60fdf00078572d6aeb5257f622353aeac7ff862..48574d37929c7aeaec6b6f7b4887b13f
}
// Paper start
if (this.isBlocking()) {
@@ -1333,6 +1352,30 @@ public class ServerPlayer extends Player {
@@ -1337,6 +1356,30 @@ public class ServerPlayer extends Player {
protected Optional<BlockUtil.FoundRectangle> getExitPortal(ServerLevel worldserver, BlockPos blockposition, boolean flag, WorldBorder worldborder, int searchRadius, boolean canCreatePortal, int createRadius) { // CraftBukkit
Optional<BlockUtil.FoundRectangle> optional = super.getExitPortal(worldserver, blockposition, flag, worldborder, searchRadius, canCreatePortal, createRadius); // CraftBukkit

Expand Down Expand Up @@ -121,7 +121,7 @@ index 52b7d704f1a13e215da586a45da9c554f40f3d86..3994583f24bd558e7b0f7649e27fcea7

// Save player file again if they were disconnected
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index dfce80a9e4736f8545d20713ebd4d4d0fd377a10..deaba5f2c0f684451d9cac5d1eb73fe7bcc36210 100644
index ee7769a12cad46f962dc75fe48e3e2dd0ed644a8..41f93fd2aa5d8b6362a40764be3e1e3a834a6827 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -242,7 +242,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
Expand Down
10 changes: 5 additions & 5 deletions patches/server/0079-Fix-Paper-9372.patch
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,34 @@ Subject: [PATCH] Fix Paper#9372
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)

diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 246afa286ae66788c45b6c58108ff200bbb92f6b..0d0479be19afd82a876b8a4a5eda86d7f6710452 100644
index 85a59fbbba1e9c14567f8cc294c27ce9640b73b7..ab3ab965e0efa106f20ff9fd84fe7fb026fa4efc 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1252,6 +1252,7 @@ public class ServerPlayer extends Player {
@@ -1256,6 +1256,7 @@ public class ServerPlayer extends Player {
this.setServerLevel(worldserver);
this.connection.teleport(exit); // CraftBukkit - use internal teleport without event
this.connection.resetPosition();
+ if (top.leavesmc.leaves.LeavesConfig.fixPaper9372) this.mainSupportingBlockPos = Optional.empty(); // Leaves - fix paper 9372
worldserver.addDuringPortalTeleport(this);
worldserver1.getProfiler().pop();
this.triggerDimensionChangeTriggers(worldserver1);
@@ -1963,6 +1964,7 @@ public class ServerPlayer extends Player {
@@ -1967,6 +1968,7 @@ public class ServerPlayer extends Player {
public void moveTo(double x, double y, double z) {
super.moveTo(x, y, z);
this.connection.resetPosition();
+ if (top.leavesmc.leaves.LeavesConfig.fixPaper9372) this.mainSupportingBlockPos = Optional.empty(); // Leaves - fix paper 9372
}

@Override
@@ -2199,6 +2201,7 @@ public class ServerPlayer extends Player {
@@ -2203,6 +2205,7 @@ public class ServerPlayer extends Player {

this.connection.send(new ClientboundSetCameraPacket(this.camera));
this.connection.resetPosition();
+ if (top.leavesmc.leaves.LeavesConfig.fixPaper9372) this.mainSupportingBlockPos = Optional.empty(); // Leaves - fix paper 9372
}
}

@@ -2651,6 +2654,7 @@ public class ServerPlayer extends Player {
@@ -2655,6 +2658,7 @@ public class ServerPlayer extends Player {
public void forceSetPositionRotation(double x, double y, double z, float yaw, float pitch) {
this.moveTo(x, y, z, yaw, pitch);
this.connection.resetPosition();
Expand Down

0 comments on commit e6d432f

Please sign in to comment.