From 02518f92ab38ab37aa7fd3d8609b9fab9a63af40 Mon Sep 17 00:00:00 2001 From: Ugleh Date: Tue, 2 Oct 2018 11:41:47 -0400 Subject: [PATCH] Make setPersistent also control player saving --- nms-patches/PlayerList.patch | 40 +++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/nms-patches/PlayerList.patch b/nms-patches/PlayerList.patch index 350105d2ef..8e6151cde3 100644 --- a/nms-patches/PlayerList.patch +++ b/nms-patches/PlayerList.patch @@ -162,9 +162,11 @@ } public void b(WorldBorder worldborder, double d0) {} -@@ -254,13 +302,13 @@ +@@ -253,14 +301,15 @@ + } protected void savePlayerFile(EntityPlayer entityplayer) { ++ if (!entityplayer.getBukkitEntity().isPersistent()) return; // CraftBukkit this.playerFileData.save(entityplayer); - ServerStatisticManager serverstatisticmanager = (ServerStatisticManager) this.o.get(entityplayer.getUniqueID()); + ServerStatisticManager serverstatisticmanager = (ServerStatisticManager) entityplayer.getStatisticManager(); // CraftBukkit @@ -178,7 +180,7 @@ if (advancementdataplayer != null) { advancementdataplayer.c(); -@@ -268,29 +316,80 @@ +@@ -268,29 +317,80 @@ } @@ -266,7 +268,7 @@ this.savePlayerFile(entityplayer); if (entityplayer.isPassenger()) { Entity entity = entityplayer.getRootVehicle(); -@@ -321,18 +420,68 @@ +@@ -321,18 +421,68 @@ if (entityplayer1 == entityplayer) { this.j.remove(uuid); @@ -341,7 +343,7 @@ GameProfileBanEntry gameprofilebanentry = (GameProfileBanEntry) this.k.get(gameprofile); chatmessage = new ChatMessage("multiplayer.disconnect.banned.reason", new Object[] { gameprofilebanentry.getReason()}); -@@ -340,10 +489,12 @@ +@@ -340,10 +490,12 @@ chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned.expiration", new Object[] { PlayerList.g.format(gameprofilebanentry.getExpires())})); } @@ -357,7 +359,7 @@ IpBanEntry ipbanentry = this.l.get(socketaddress); chatmessage = new ChatMessage("multiplayer.disconnect.banned_ip.reason", new Object[] { ipbanentry.getReason()}); -@@ -351,13 +502,25 @@ +@@ -351,13 +503,25 @@ chatmessage.addSibling(new ChatMessage("multiplayer.disconnect.banned_ip.expiration", new Object[] { PlayerList.g.format(ipbanentry.getExpires())})); } @@ -386,7 +388,7 @@ UUID uuid = EntityHuman.a(gameprofile); ArrayList arraylist = Lists.newArrayList(); -@@ -392,17 +555,27 @@ +@@ -392,17 +556,27 @@ } return new EntityPlayer(this.server, this.server.getWorldServer(DimensionManager.OVERWORLD), gameprofile, (PlayerInteractManager) object); @@ -415,7 +417,7 @@ entityplayer.dimension = dimensionmanager; Object object; -@@ -413,6 +586,11 @@ +@@ -413,6 +587,11 @@ } EntityPlayer entityplayer1 = new EntityPlayer(this.server, this.server.getWorldServer(entityplayer.dimension), entityplayer.getProfile(), (PlayerInteractManager) object); @@ -427,7 +429,7 @@ entityplayer1.playerConnection = entityplayer.playerConnection; entityplayer1.copyFrom(entityplayer, flag); -@@ -426,43 +604,160 @@ +@@ -426,43 +605,160 @@ entityplayer1.addScoreboardTag(s); } @@ -605,7 +607,7 @@ public void f(EntityPlayer entityplayer) { GameProfile gameprofile = entityplayer.getProfile(); int i = this.server.a(gameprofile); -@@ -499,42 +794,69 @@ +@@ -499,42 +795,69 @@ } public void changeWorld(Entity entity, DimensionManager dimensionmanager, WorldServer worldserver, WorldServer worldserver1) { @@ -678,7 +680,7 @@ } worldserver.methodProfiler.e(); -@@ -542,22 +864,119 @@ +@@ -542,22 +865,119 @@ worldserver.methodProfiler.a("placing"); d0 = (double) MathHelper.clamp((int) d0, -29999872, 29999872); d1 = (double) MathHelper.clamp((int) d1, -29999872, 29999872); @@ -799,7 +801,7 @@ this.v = 0; } -@@ -570,6 +989,25 @@ +@@ -570,6 +990,25 @@ } @@ -825,7 +827,7 @@ public void a(Packet packet, DimensionManager dimensionmanager) { for (int i = 0; i < this.players.size(); ++i) { EntityPlayer entityplayer = (EntityPlayer) this.players.get(i); -@@ -670,6 +1108,7 @@ +@@ -670,6 +1109,7 @@ entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0)); } @@ -833,7 +835,7 @@ this.server.getCommandDispatcher().a(entityplayer); } -@@ -702,6 +1141,12 @@ +@@ -702,6 +1142,12 @@ for (int i = 0; i < this.players.size(); ++i) { EntityPlayer entityplayer = (EntityPlayer) this.players.get(i); @@ -846,7 +848,7 @@ if (entityplayer != entityhuman && entityplayer.dimension == dimensionmanager) { double d4 = d0 - entityplayer.locX; double d5 = d1 - entityplayer.locY; -@@ -741,7 +1186,7 @@ +@@ -741,7 +1187,7 @@ public void reloadWhitelist() {} public void b(EntityPlayer entityplayer, WorldServer worldserver) { @@ -855,7 +857,7 @@ entityplayer.playerConnection.sendPacket(new PacketPlayOutWorldBorder(worldborder, PacketPlayOutWorldBorder.EnumWorldBorderAction.INITIALIZE)); entityplayer.playerConnection.sendPacket(new PacketPlayOutUpdateTime(worldserver.getTime(), worldserver.getDayTime(), worldserver.getGameRules().getBoolean("doDaylightCycle"))); -@@ -749,16 +1194,21 @@ +@@ -749,16 +1195,21 @@ entityplayer.playerConnection.sendPacket(new PacketPlayOutSpawnPosition(blockposition)); if (worldserver.isRaining()) { @@ -881,7 +883,7 @@ entityplayer.playerConnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex)); } -@@ -820,26 +1270,39 @@ +@@ -820,26 +1271,39 @@ } public void u() { @@ -926,7 +928,7 @@ if (serverstatisticmanager == null) { File file = new File(this.server.getWorldServer(DimensionManager.OVERWORLD).getDataManager().getDirectory(), "stats"); -@@ -854,7 +1317,7 @@ +@@ -854,7 +1318,7 @@ } serverstatisticmanager = new ServerStatisticManager(this.server, file1); @@ -935,7 +937,7 @@ } return serverstatisticmanager; -@@ -862,14 +1325,14 @@ +@@ -862,14 +1326,14 @@ public AdvancementDataPlayer h(EntityPlayer entityplayer) { UUID uuid = entityplayer.getUniqueID(); @@ -952,7 +954,7 @@ } advancementdataplayer.a(entityplayer); -@@ -905,13 +1368,20 @@ +@@ -905,13 +1369,20 @@ } public void reload() {