mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-31 04:46:29 +00:00
Update 1.19.4
This commit is contained in:
@@ -5,10 +5,10 @@ Subject: [PATCH] Fakeplayer support
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index abc70f9aa1dd2080d9c0111a91f6dd74bc3ffbd0..7e15411afc2c35feb32569e557100b92b46a2b31 100644
|
||||
index 48d4b8dc0396dc7f9142fcef35e8ecbdea5f1223..ad9c90b359874ee2c9a94c5b2cf72a634e8b56f4 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -125,6 +125,7 @@ import net.minecraft.util.profiling.metrics.profiling.ServerMetricsSamplersProvi
|
||||
@@ -126,6 +126,7 @@ import net.minecraft.util.profiling.metrics.profiling.ServerMetricsSamplersProvi
|
||||
import net.minecraft.util.profiling.metrics.storage.MetricsPersister;
|
||||
import net.minecraft.util.thread.ReentrantBlockableEventLoop;
|
||||
import net.minecraft.world.Difficulty;
|
||||
@@ -16,7 +16,7 @@ index abc70f9aa1dd2080d9c0111a91f6dd74bc3ffbd0..7e15411afc2c35feb32569e557100b92
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.ai.village.VillageSiege;
|
||||
import net.minecraft.world.entity.npc.CatSpawner;
|
||||
@@ -632,6 +633,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -634,6 +635,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -25,7 +25,7 @@ index abc70f9aa1dd2080d9c0111a91f6dd74bc3ffbd0..7e15411afc2c35feb32569e557100b92
|
||||
this.server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.POSTWORLD);
|
||||
this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP));
|
||||
this.connection.acceptConnections();
|
||||
@@ -939,6 +942,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -941,6 +944,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
MinecraftServer.LOGGER.info("Stopping server");
|
||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Shutdown and don't bother finishing
|
||||
MinecraftTimings.stopServer(); // Paper
|
||||
@@ -37,10 +37,10 @@ index abc70f9aa1dd2080d9c0111a91f6dd74bc3ffbd0..7e15411afc2c35feb32569e557100b92
|
||||
if (this.server != null) {
|
||||
this.server.disablePlugins();
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
index a0c19503aabab5378d672a30163d35a5ba05b6c1..8873e12cbd3d6f9071efedb35ea3c69c78033d78 100644
|
||||
index 26888ebd38280de92e41dd8006d2b24e874afe26..a1ce0cce055ad5c92b0f20760471795f08f0c886 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
@@ -48,6 +48,7 @@ import net.minecraft.server.players.PlayerList;
|
||||
@@ -44,6 +44,7 @@ import net.minecraft.server.players.PlayerList;
|
||||
import net.minecraft.util.datafix.DataFixTypes;
|
||||
import net.minecraft.world.level.GameRules;
|
||||
import org.slf4j.Logger;
|
||||
@@ -48,7 +48,7 @@ index a0c19503aabab5378d672a30163d35a5ba05b6c1..8873e12cbd3d6f9071efedb35ea3c69c
|
||||
|
||||
public class PlayerAdvancements {
|
||||
|
||||
@@ -272,6 +273,11 @@ public class PlayerAdvancements {
|
||||
@@ -224,6 +225,11 @@ public class PlayerAdvancements {
|
||||
}
|
||||
|
||||
public boolean award(Advancement advancement, String criterionName) {
|
||||
@@ -61,10 +61,10 @@ index a0c19503aabab5378d672a30163d35a5ba05b6c1..8873e12cbd3d6f9071efedb35ea3c69c
|
||||
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 289429eb464548acc80262a49444f49f8f57fc0c..2e5871d9af67ad1c65a382f5e4964a13a7821305 100644
|
||||
index ca5291a9573a62cb5c19539cf5c7aceff11f9829..a11b8b93ba9248ea463b7a3a3dcfdcf1c17baffb 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -176,6 +176,7 @@ import org.bukkit.event.player.PlayerPortalEvent;
|
||||
@@ -182,6 +182,7 @@ import org.bukkit.event.player.PlayerPortalEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.inventory.MainHand;
|
||||
@@ -72,7 +72,7 @@ index 289429eb464548acc80262a49444f49f8f57fc0c..2e5871d9af67ad1c65a382f5e4964a13
|
||||
// CraftBukkit end
|
||||
|
||||
public class ServerPlayer extends Player {
|
||||
@@ -1209,6 +1210,13 @@ public class ServerPlayer extends Player {
|
||||
@@ -1221,6 +1222,13 @@ public class ServerPlayer extends Player {
|
||||
this.lastSentHealth = -1.0F;
|
||||
this.lastSentFood = -1;
|
||||
|
||||
@@ -87,10 +87,10 @@ index 289429eb464548acc80262a49444f49f8f57fc0c..2e5871d9af67ad1c65a382f5e4964a13
|
||||
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld());
|
||||
this.level.getCraftServer().getPluginManager().callEvent(changeEvent);
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 835e439a1af327c67558653ef79ef7e59692a976..843f58761325bcb193deabae9d90072f32c0b083 100644
|
||||
index c0c14766adaac855112f85a203a6163b8adfdded..df9f4c0dd69ccd9d02683c1a6302d0b537c64804 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -80,6 +80,7 @@ import net.minecraft.server.ServerScoreboard;
|
||||
@@ -81,6 +81,7 @@ import net.minecraft.server.ServerScoreboard;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.TagNetworkSerialization;
|
||||
import net.minecraft.util.Mth;
|
||||
@@ -98,7 +98,7 @@ index 835e439a1af327c67558653ef79ef7e59692a976..843f58761325bcb193deabae9d90072f
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
@@ -100,6 +101,7 @@ import net.minecraft.world.scores.Objective;
|
||||
@@ -101,6 +102,7 @@ import net.minecraft.world.scores.Objective;
|
||||
import net.minecraft.world.scores.PlayerTeam;
|
||||
import net.minecraft.world.scores.Scoreboard; // Paper
|
||||
import net.minecraft.world.scores.Team;
|
||||
@@ -106,7 +106,7 @@ index 835e439a1af327c67558653ef79ef7e59692a976..843f58761325bcb193deabae9d90072f
|
||||
import org.slf4j.Logger;
|
||||
|
||||
// CraftBukkit start
|
||||
@@ -117,7 +119,6 @@ import org.bukkit.Location;
|
||||
@@ -118,7 +120,6 @@ import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
@@ -114,7 +114,7 @@ index 835e439a1af327c67558653ef79ef7e59692a976..843f58761325bcb193deabae9d90072f
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
@@ -322,6 +323,18 @@ public abstract class PlayerList {
|
||||
@@ -328,6 +329,18 @@ public abstract class PlayerList {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ index 835e439a1af327c67558653ef79ef7e59692a976..843f58761325bcb193deabae9d90072f
|
||||
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
|
||||
|
||||
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
|
||||
@@ -1065,11 +1078,16 @@ public abstract class PlayerList {
|
||||
@@ -1072,11 +1085,16 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public String[] getPlayerNamesArray() {
|
||||
@@ -151,7 +151,7 @@ index 835e439a1af327c67558653ef79ef7e59692a976..843f58761325bcb193deabae9d90072f
|
||||
|
||||
return astring;
|
||||
}
|
||||
@@ -1534,4 +1552,16 @@ public abstract class PlayerList {
|
||||
@@ -1540,4 +1558,16 @@ public abstract class PlayerList {
|
||||
public boolean isAllowCheatsForAllPlayers() {
|
||||
return this.allowCheatsForAllPlayers;
|
||||
}
|
||||
@@ -169,10 +169,10 @@ index 835e439a1af327c67558653ef79ef7e59692a976..843f58761325bcb193deabae9d90072f
|
||||
+ // Leaves end - fakeplayer support
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 1116116e4ba6c5ecec400cd371b70b9e14efd92b..53c5c229f710da8c409bbc5adcd932ef3e848473 100644
|
||||
index 2b02800666b358159c8ecb63208a14855f90657b..3b119f016cee353412fa84415e189453e9371b2c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -1283,7 +1283,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -1282,7 +1282,7 @@ public abstract class Player extends LivingEntity {
|
||||
boolean flag3 = false;
|
||||
double d0 = (double) (this.walkDist - this.walkDistO);
|
||||
|
||||
@@ -182,7 +182,7 @@ index 1116116e4ba6c5ecec400cd371b70b9e14efd92b..53c5c229f710da8c409bbc5adcd932ef
|
||||
|
||||
if (itemstack.getItem() instanceof SwordItem) {
|
||||
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 15fb5ee374b19366ebb23181896fb943e95819f0..07886228e5a9536908b8480e8bf585bbbe91cb00 100644
|
||||
index d77410588a1c10d8ac902f21a8bd7e35f74fecd2..f6b462314450a234d639ee96ae22575c207aa131 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||
@@ -61,7 +61,7 @@ public class FishingHook extends Projectile {
|
||||
@@ -195,7 +195,7 @@ index 15fb5ee374b19366ebb23181896fb943e95819f0..07886228e5a9536908b8480e8bf585bb
|
||||
private int timeUntilHooked;
|
||||
private float fishAngle;
|
||||
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
index 143977055717c2fe27df76231da304e2863b8f1f..4226e20dc91087f31c44e0ea7d0e8d06ec6facc8 100644
|
||||
index c84908095a93d42826b21bf5f3490410fb0a5708..4b0bdf8705eadd2ca6c0fd5a3494fd8742330ef6 100644
|
||||
--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
+++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
@@ -406,6 +406,8 @@ public abstract class AbstractContainerMenu {
|
||||
@@ -232,22 +232,22 @@ index 143977055717c2fe27df76231da304e2863b8f1f..4226e20dc91087f31c44e0ea7d0e8d06
|
||||
FeatureFlagSet featureflagset = player.getLevel().enabledFeatures();
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 750ac80eed6ba03e138dd4c03f57ddfe4a123276..f285a5a3f8a6b793452f872bc53b4aeeb5c3d383 100644
|
||||
index 57a0dbb23a32123d30c3b3572f4d129be9d97847..deb7057a684b81741edb9f0903cda0439df5623d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -190,6 +190,8 @@ import org.bukkit.plugin.Plugin;
|
||||
@@ -191,6 +191,8 @@ import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.BoundingBox;
|
||||
import org.bukkit.util.NumberConversions;
|
||||
import org.bukkit.util.Vector;
|
||||
+import top.leavesmc.leaves.bot.ServerBot;
|
||||
+import top.leavesmc.leaves.entity.CraftBot;
|
||||
|
||||
public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
private static PermissibleBase perm;
|
||||
@@ -214,7 +216,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
|
||||
|
||||
@@ -217,7 +219,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
if (entity instanceof LivingEntity) {
|
||||
// Players
|
||||
if (entity instanceof Player) {
|
||||
if (entity instanceof net.minecraft.world.entity.player.Player) {
|
||||
- if (entity instanceof ServerPlayer) { return new CraftPlayer(server, (ServerPlayer) entity); }
|
||||
+ // Leaves start - add CraftBot
|
||||
+ if (entity instanceof ServerPlayer) {
|
||||
@@ -255,7 +255,7 @@ index 750ac80eed6ba03e138dd4c03f57ddfe4a123276..f285a5a3f8a6b793452f872bc53b4aee
|
||||
+ else { return new CraftPlayer(server, (ServerPlayer) entity); }
|
||||
+ }
|
||||
+ // Leaves end - add CraftBot
|
||||
else { return new CraftHumanEntity(server, (Player) entity); }
|
||||
else { return new CraftHumanEntity(server, (net.minecraft.world.entity.player.Player) entity); }
|
||||
}
|
||||
// Water Animals
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -337,7 +337,7 @@ index 1fb25e8a21b568864974cc81b452ba062890d593..67337e7daefec0fa710ea0df0e8cfeb8
|
||||
public final String worldName;
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/bot/BotCommand.java b/src/main/java/top/leavesmc/leaves/bot/BotCommand.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..6b7fb541d4d1fb6d4f3239ec59da26e30af76234
|
||||
index 0000000000000000000000000000000000000000..a572488cf07940fa760e8908973ba76cd1c7111f
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/top/leavesmc/leaves/bot/BotCommand.java
|
||||
@@ -0,0 +1,222 @@
|
||||
@@ -482,7 +482,7 @@ index 0000000000000000000000000000000000000000..6b7fb541d4d1fb6d4f3239ec59da26e3
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ bot.die(DamageSource.OUT_OF_WORLD);
|
||||
+ bot.die(bot.damageSources().outOfWorld());
|
||||
+ }
|
||||
+
|
||||
+ private void onAction(CommandSender sender, String @NotNull [] args) {
|
||||
@@ -945,7 +945,7 @@ index 0000000000000000000000000000000000000000..d6466ee4db637106e1394bb462d875e5
|
||||
+}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/bot/ServerBot.java b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..65df16e8034711957ec3610a0846e9b6875eeeca
|
||||
index 0000000000000000000000000000000000000000..548e4b77751e476fa25268f67768bb3dbe6c7a03
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java
|
||||
@@ -0,0 +1,781 @@
|
||||
@@ -1514,7 +1514,7 @@ index 0000000000000000000000000000000000000000..65df16e8034711957ec3610a0846e9b6
|
||||
+
|
||||
+ private void fallDamageCheck() {
|
||||
+ if (groundTicks != 0 && noFallTicks == 0 && !(oldVelocity.getY() >= -0.8)) {
|
||||
+ hurt(DamageSource.FALL, (float) Math.pow(3.6, -oldVelocity.getY()));
|
||||
+ hurt(this.damageSources().fall(), (float) Math.pow(3.6, -oldVelocity.getY()));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
@@ -1707,7 +1707,7 @@ index 0000000000000000000000000000000000000000..65df16e8034711957ec3610a0846e9b6
|
||||
+ while (iterator.hasNext()) {
|
||||
+ ServerBot bot = iterator.next();
|
||||
+ iterator.remove();
|
||||
+ bot.die(DamageSource.OUT_OF_WORLD);
|
||||
+ bot.die(bot.damageSources().outOfWorld());
|
||||
+ }
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
Reference in New Issue
Block a user