Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13741,7 +13741,7 @@ index e38acabda1d2e49d88b94d46cc51f6602870d6b6..b1b7bfa011bd4b97896cac51cb36e3f4
parsedDate = defaultValue;
}
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index baec5d072b8f2d9379dba850b04e881e5267ca6b..9bbb78ccc6c64930b6c52a3cbc73eb9d81167464 100644
index baec5d072b8f2d9379dba850b04e881e5267ca6b..1f3a086a294bf137e226b78e7def6ab97e0bc36a 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -111,10 +111,10 @@ public abstract class PlayerList {
Expand Down Expand Up @@ -14113,6 +14113,47 @@ index baec5d072b8f2d9379dba850b04e881e5267ca6b..9bbb78ccc6c64930b6c52a3cbc73eb9d
final net.minecraft.world.scores.Scoreboard scoreboard = this.getServer().getLevel(Level.OVERWORLD).getScoreboard();
final PlayerTeam team = scoreboard.getPlayersTeam(this.collideRuleTeamName);
if (team != null) scoreboard.removePlayerTeam(team);
@@ -1270,8 +1355,17 @@ public abstract class PlayerList {
// playerAdvancements.reload(this.server.getAdvancements());
// }
for (ServerPlayer player : this.players) {
- player.getAdvancements().reload(this.server.getAdvancements());
- player.getAdvancements().flushDirty(player, false); // CraftBukkit - trigger immediate flush of advancements
+ // Folia start - region threading
+
+ // while normally fine to just leave as-is, since disabled the Minecraft reload command,
+ // the method CraftServer#updateResources can call this, which would kill any player that is
+ // outside the region in context
+
+ player.getBukkitEntity().taskScheduler.scheduleOrExecute((ServerPlayer entityPlayer) -> {
+ entityPlayer.getAdvancements().reload(this.server.getAdvancements());
+ entityPlayer.getAdvancements().flushDirty(entityPlayer, false); // CraftBukkit - trigger immediate flush of advancements
+ });
+ // Folia end - region threading
}
// CraftBukkit end

@@ -1292,8 +1386,18 @@ public abstract class PlayerList {
);

for (ServerPlayer player : this.players) {
- player.connection.send(recipes);
- player.getRecipeBook().sendInitialRecipeBook(player);
+ // Folia start - region threading
+
+ // while normally fine to just leave as-is, since disabled the Minecraft reload command,
+ // the method CraftServer#updateResources can call this, which would kill any player that is
+ // outside the region in context
+
+ // usage of "schedule" and not "scheduleOrExecute" is intentional
+ player.getBukkitEntity().taskScheduler.schedule((ServerPlayer entityPlayer) -> {
+ entityPlayer.connection.send(recipes);
+ entityPlayer.getRecipeBook().sendInitialRecipeBook(entityPlayer);
+ }, null, 1L);
+ // Folia end - region threading
}
}

diff --git a/net/minecraft/server/players/StoredUserList.java b/net/minecraft/server/players/StoredUserList.java
index eaf8fb8a9cf94d0d16debf90e5ceda3f91c979ef..cf6c71db3dd39094608755998ceff6ca067238f3 100644
--- a/net/minecraft/server/players/StoredUserList.java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ index 2b641c9180a5890af8fed8bcc8e8ad23d6680c17..95787d6d29ddb8dca78506bb2a115fa6

if (this.state == ServerLoginPacketListenerImpl.State.WAITING_FOR_DUPE_DISCONNECT
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 9bbb78ccc6c64930b6c52a3cbc73eb9d81167464..c36ca30382eb0013644d7230b5585d5123e21cc7 100644
index 1f3a086a294bf137e226b78e7def6ab97e0bc36a..ef3de3e948c08160b8a66f69e822f63dc307b716 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -149,6 +149,17 @@ public abstract class PlayerList {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,7 @@ index 848f4286b1b64f257c8383964b95323d97e4a0de..35ab432bbd59aba80a6eaca1769e6aa8
}

diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index c36ca30382eb0013644d7230b5585d5123e21cc7..259eb7574841b1b885093b534440f8a40db4e8e2 100644
index ef3de3e948c08160b8a66f69e822f63dc307b716..1fd2eaebffc11618847ce5fd6ec3bfe2bb3c44fe 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -1033,6 +1033,7 @@ public abstract class PlayerList {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,22 @@ index c2174c8ae594fe8ec7741ecdbb53e9acc2bbf5b2..0762cfa9748ed6feff74abe060756d7a
.thenCompose(Function.identity())
.join()
.getList(),
diff --git a/src/main/java/io/papermc/paper/datapack/PaperDatapack.java b/src/main/java/io/papermc/paper/datapack/PaperDatapack.java
index bbd709529c58d8b690f56c6f523008d7a04bfbcd..61bc9b7f192d7a5715b2772f1fb6cbdbc9d9a030 100644
--- a/src/main/java/io/papermc/paper/datapack/PaperDatapack.java
+++ b/src/main/java/io/papermc/paper/datapack/PaperDatapack.java
@@ -28,6 +28,11 @@ public class PaperDatapack extends PaperDiscoveredDatapack implements Datapack {

@Override
public void setEnabled(final boolean enabled) {
+ // Folia start - region threading
+ if (true) {
+ throw new UnsupportedOperationException("Unsupported in region threading");
+ }
+ // Folia end - region threading
final MinecraftServer server = MinecraftServer.getServer();
final List<Pack> enabledPacks = new ArrayList<>(server.getPackRepository().getSelectedPacks());
final Pack packToChange = server.getPackRepository().getPack(this.getName());
diff --git a/src/main/java/io/papermc/paper/entity/PaperSchoolableFish.java b/src/main/java/io/papermc/paper/entity/PaperSchoolableFish.java
index 661e0c324caca4b4fc6fcb31645a03193ab3dec4..8b5f80419efb0d80445306e8b4b397bed935ab97 100644
--- a/src/main/java/io/papermc/paper/entity/PaperSchoolableFish.java
Expand Down Expand Up @@ -793,7 +809,7 @@ index f659aba1587d70b8d4011e66f40f480ff4deeeb4..532076c7358aa355ce5144075fe6bd79
MinecraftServer.LOGGER.warn("Asynchronous " + reason + "!", new IllegalStateException());
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 716c3b17dc07eb2417dfb0084fe75dbd270f031a..ede5ab54621b44e5bf0d4f6297294e55c2473895 100644
index 716c3b17dc07eb2417dfb0084fe75dbd270f031a..c047875cf8544d138d43d9458dad8ba8185b37b9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -306,7 +306,7 @@ public final class CraftServer implements Server {
Expand Down Expand Up @@ -859,23 +875,47 @@ index 716c3b17dc07eb2417dfb0084fe75dbd270f031a..ede5ab54621b44e5bf0d4f6297294e55
CommandSourceStack sourceStack = VanillaCommandWrapper.getListener(rawSender);

String command = StringUtils.normalizeSpace(commandLine.trim());
@@ -1164,6 +1197,7 @@ public final class CraftServer implements Server {
@@ -948,6 +981,11 @@ public final class CraftServer implements Server {

@Override
public void reload() {
+ // Folia start - region threading
+ if (true) {
+ throw new UnsupportedOperationException("Unsupported in region threading");
+ }
+ // Folia end - region threading
// Paper start - lifecycle events
if (io.papermc.paper.plugin.lifecycle.event.LifecycleEventRunner.INSTANCE.blocksPluginReloading()) {
throw new IllegalStateException(org.bukkit.command.defaults.ReloadCommand.RELOADING_DISABLED_MESSAGE);
@@ -1084,6 +1122,11 @@ public final class CraftServer implements Server {

@Override
public void reloadData() {
+ // Folia start - region threading
+ if (true) {
+ throw new UnsupportedOperationException("Unsupported in region threading");
+ }
+ // Folia end - region threading
ReloadCommand.reload(this.console);
}

@@ -1164,6 +1207,7 @@ public final class CraftServer implements Server {

@Override
public World createWorld(WorldCreator creator) {
+ if (true) throw new UnsupportedOperationException(); // Folia - not implemented properly yet
Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP");
//Preconditions.checkState(!this.console.isIteratingOverLevels, "Cannot create a world while worlds are being ticked"); // Paper - Cat - Temp disable. We'll see how this goes.
Preconditions.checkArgument(creator != null, "WorldCreator cannot be null");
@@ -1321,6 +1355,7 @@ public final class CraftServer implements Server {
@@ -1321,6 +1365,7 @@ public final class CraftServer implements Server {

@Override
public boolean unloadWorld(World world, boolean save) {
+ if (true) throw new UnsupportedOperationException(); // Folia - not implemented properly yet
//Preconditions.checkState(!this.console.isIteratingOverLevels, "Cannot unload a world while worlds are being ticked"); // Paper - Cat - Temp disable. We'll see how this goes.
if (world == null) {
return false;
@@ -2699,8 +2734,23 @@ public final class CraftServer implements Server {
@@ -2699,8 +2744,23 @@ public final class CraftServer implements Server {

@Override
public double getAverageTickTime() {
Expand All @@ -901,7 +941,7 @@ index 716c3b17dc07eb2417dfb0084fe75dbd270f031a..ede5ab54621b44e5bf0d4f6297294e55
}

private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot() {
@@ -2757,7 +2807,27 @@ public final class CraftServer implements Server {
@@ -2757,7 +2817,27 @@ public final class CraftServer implements Server {

@Override
public double[] getTPS() {
Expand Down Expand Up @@ -930,7 +970,7 @@ index 716c3b17dc07eb2417dfb0084fe75dbd270f031a..ede5ab54621b44e5bf0d4f6297294e55
}

@Override
@@ -2927,7 +2997,7 @@ public final class CraftServer implements Server {
@@ -2927,7 +3007,7 @@ public final class CraftServer implements Server {

@Override
public int getCurrentTick() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Add TPS From Region


diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index ede5ab54621b44e5bf0d4f6297294e55c2473895..3fac32b420ce4ae74166eac43d38c51c1fd513cf 100644
index c047875cf8544d138d43d9458dad8ba8185b37b9..dadc79b83aaef5b1e063f74905e174170ca30ac4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3031,4 +3031,69 @@ public final class CraftServer implements Server {
@@ -3041,4 +3041,69 @@ public final class CraftServer implements Server {
public void allowPausing(final Plugin plugin, final boolean value) {
this.console.addPluginAllowingSleep(plugin.getName(), value);
}
Expand Down