geforkt von Mirrors/Paper
aa52bf9e33
Mojang made some changes to priorities in 1.17 and it seems that these changes conflict with the changes made in this patch, which in some cases appears to cause excessive rescheduling of tasks. This, however, is not confirmed as such but seems to be the behavior that we're seeing to cause this issue, if mojang has adopted the changes we suggested, then a good chunk of this patch may be unneeded, but, this needs a much better look than I'm currently able to do
29 Zeilen
1.8 KiB
Diff
29 Zeilen
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Mon, 4 Jan 2021 19:52:44 -0800
|
|
Subject: [PATCH] Make schedule command per-world
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/commands/ScheduleCommand.java b/src/main/java/net/minecraft/server/commands/ScheduleCommand.java
|
|
index 3f2a4e2399759cdd5aebe0b87c9d72f50cf6a72d..fb1f94acb3e848fa2a21a258145f3b4cb42fe562 100644
|
|
--- a/src/main/java/net/minecraft/server/commands/ScheduleCommand.java
|
|
+++ b/src/main/java/net/minecraft/server/commands/ScheduleCommand.java
|
|
@@ -32,7 +32,7 @@ public class ScheduleCommand {
|
|
return new TranslatableComponent("commands.schedule.cleared.failure", new Object[]{object});
|
|
});
|
|
private static final SuggestionProvider<CommandSourceStack> SUGGEST_SCHEDULE = (commandcontext, suggestionsbuilder) -> {
|
|
- return SharedSuggestionProvider.suggest((Iterable) ((CommandSourceStack) commandcontext.getSource()).getServer().getWorldData().overworldData().getScheduledEvents().getEventsIds(), suggestionsbuilder);
|
|
+ return SharedSuggestionProvider.suggest((Iterable) ((net.minecraft.commands.CommandSourceStack) commandcontext.getSource()).getLevel().serverLevelData.getScheduledEvents().getEventsIds(), suggestionsbuilder); // Paper
|
|
};
|
|
|
|
public ScheduleCommand() {}
|
|
@@ -83,7 +83,7 @@ public class ScheduleCommand {
|
|
}
|
|
|
|
private static int remove(CommandSourceStack source, String eventName) throws CommandSyntaxException {
|
|
- int i = source.getServer().getWorldData().overworldData().getScheduledEvents().remove(eventName);
|
|
+ int i = source.getLevel().serverLevelData.getScheduledEvents().remove(eventName); // Paper
|
|
|
|
if (i == 0) {
|
|
throw ScheduleCommand.ERROR_CANT_REMOVE.create(eventName);
|