mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-01 04:32:11 -07:00
Remap CraftBukkit to Mojang+Yarn Mappings
By: Initial Source <noreply+automated@papermc.io>
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandDifficulty.java
|
||||
+++ b/net/minecraft/server/commands/CommandDifficulty.java
|
||||
@@ -44,11 +44,12 @@
|
||||
|
||||
public static int setDifficulty(CommandListenerWrapper commandlistenerwrapper, EnumDifficulty enumdifficulty) throws CommandSyntaxException {
|
||||
MinecraftServer minecraftserver = commandlistenerwrapper.getServer();
|
||||
+ net.minecraft.server.level.WorldServer worldServer = commandlistenerwrapper.getLevel(); // CraftBukkit
|
||||
|
||||
- if (minecraftserver.getWorldData().getDifficulty() == enumdifficulty) {
|
||||
+ if (worldServer.getDifficulty() == enumdifficulty) { // CraftBukkit
|
||||
throw CommandDifficulty.ERROR_ALREADY_DIFFICULT.create(enumdifficulty.getKey());
|
||||
} else {
|
||||
- minecraftserver.setDifficulty(enumdifficulty, true);
|
||||
+ worldServer.serverLevelData.setDifficulty(enumdifficulty); // CraftBukkit
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
return IChatBaseComponent.translatable("commands.difficulty.success", enumdifficulty.getDisplayName());
|
||||
}, true);
|
@@ -1,29 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandEffect.java
|
||||
+++ b/net/minecraft/server/commands/CommandEffect.java
|
||||
@@ -84,7 +84,7 @@
|
||||
if (entity instanceof EntityLiving) {
|
||||
MobEffect mobeffect = new MobEffect(holder, k, i, false, flag);
|
||||
|
||||
- if (((EntityLiving) entity).addEffect(mobeffect, commandlistenerwrapper.getEntity())) {
|
||||
+ if (((EntityLiving) entity).addEffect(mobeffect, commandlistenerwrapper.getEntity(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.COMMAND)) { // CraftBukkit
|
||||
++j;
|
||||
}
|
||||
}
|
||||
@@ -114,7 +114,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
|
||||
- if (entity instanceof EntityLiving && ((EntityLiving) entity).removeAllEffects()) {
|
||||
+ if (entity instanceof EntityLiving && ((EntityLiving) entity).removeAllEffects(org.bukkit.event.entity.EntityPotionEffectEvent.Cause.COMMAND)) { // CraftBukkit
|
||||
++i;
|
||||
}
|
||||
}
|
||||
@@ -144,7 +144,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
|
||||
- if (entity instanceof EntityLiving && ((EntityLiving) entity).removeEffect(holder)) {
|
||||
+ if (entity instanceof EntityLiving && ((EntityLiving) entity).removeEffect(holder, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.COMMAND)) { // CraftBukkit
|
||||
++i;
|
||||
}
|
||||
}
|
@@ -1,20 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandGamerule.java
|
||||
+++ b/net/minecraft/server/commands/CommandGamerule.java
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
static <T extends GameRules.GameRuleValue<T>> int setRule(CommandContext<CommandListenerWrapper> commandcontext, GameRules.GameRuleKey<T> gamerules_gamerulekey) {
|
||||
CommandListenerWrapper commandlistenerwrapper = (CommandListenerWrapper) commandcontext.getSource();
|
||||
- T t0 = commandlistenerwrapper.getServer().getGameRules().getRule(gamerules_gamerulekey);
|
||||
+ T t0 = commandlistenerwrapper.getLevel().getGameRules().getRule(gamerules_gamerulekey); // CraftBukkit
|
||||
|
||||
t0.setFromArgument(commandcontext, "value");
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
@@ -44,7 +44,7 @@
|
||||
}
|
||||
|
||||
static <T extends GameRules.GameRuleValue<T>> int queryRule(CommandListenerWrapper commandlistenerwrapper, GameRules.GameRuleKey<T> gamerules_gamerulekey) {
|
||||
- T t0 = commandlistenerwrapper.getServer().getGameRules().getRule(gamerules_gamerulekey);
|
||||
+ T t0 = commandlistenerwrapper.getLevel().getGameRules().getRule(gamerules_gamerulekey); // CraftBukkit
|
||||
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
return IChatBaseComponent.translatable("commands.gamerule.query", gamerules_gamerulekey.getId(), t0.toString());
|
@@ -1,18 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandList.java
|
||||
+++ b/net/minecraft/server/commands/CommandList.java
|
||||
@@ -35,7 +35,14 @@
|
||||
|
||||
private static int format(CommandListenerWrapper commandlistenerwrapper, Function<EntityPlayer, IChatBaseComponent> function) {
|
||||
PlayerList playerlist = commandlistenerwrapper.getServer().getPlayerList();
|
||||
- List<EntityPlayer> list = playerlist.getPlayers();
|
||||
+ // CraftBukkit start
|
||||
+ List<EntityPlayer> players = playerlist.getPlayers();
|
||||
+ if (commandlistenerwrapper.getBukkitSender() instanceof org.bukkit.entity.Player) {
|
||||
+ org.bukkit.entity.Player sender = (org.bukkit.entity.Player) commandlistenerwrapper.getBukkitSender();
|
||||
+ players = players.stream().filter((ep) -> sender.canSee(ep.getBukkitEntity())).collect(java.util.stream.Collectors.toList());
|
||||
+ }
|
||||
+ List<EntityPlayer> list = players;
|
||||
+ // CraftBukkit end
|
||||
IChatBaseComponent ichatbasecomponent = ChatComponentUtils.formatList(list, function);
|
||||
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
@@ -1,19 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandLoot.java
|
||||
+++ b/net/minecraft/server/commands/CommandLoot.java
|
||||
@@ -95,7 +95,7 @@
|
||||
}
|
||||
|
||||
private static <T extends ArgumentBuilder<CommandListenerWrapper, T>> T addTargets(T t0, CommandLoot.c commandloot_c) {
|
||||
- return t0.then(((LiteralArgumentBuilder) net.minecraft.commands.CommandDispatcher.literal("replace").then(net.minecraft.commands.CommandDispatcher.literal("entity").then(net.minecraft.commands.CommandDispatcher.argument("entities", ArgumentEntity.entities()).then(commandloot_c.construct(net.minecraft.commands.CommandDispatcher.argument("slot", ArgumentInventorySlot.slot()), (commandcontext, list, commandloot_a) -> {
|
||||
+ return (T) t0.then(((LiteralArgumentBuilder) net.minecraft.commands.CommandDispatcher.literal("replace").then(net.minecraft.commands.CommandDispatcher.literal("entity").then(net.minecraft.commands.CommandDispatcher.argument("entities", ArgumentEntity.entities()).then(commandloot_c.construct(net.minecraft.commands.CommandDispatcher.argument("slot", ArgumentInventorySlot.slot()), (commandcontext, list, commandloot_a) -> { // CraftBukkit - decompile error
|
||||
return entityReplace(ArgumentEntity.getEntities(commandcontext, "entities"), ArgumentInventorySlot.getSlot(commandcontext, "slot"), list.size(), list, commandloot_a);
|
||||
}).then(commandloot_c.construct(net.minecraft.commands.CommandDispatcher.argument("count", IntegerArgumentType.integer(0)), (commandcontext, list, commandloot_a) -> {
|
||||
return entityReplace(ArgumentEntity.getEntities(commandcontext, "entities"), ArgumentInventorySlot.getSlot(commandcontext, "slot"), IntegerArgumentType.getInteger(commandcontext, "count"), list, commandloot_a);
|
||||
@@ -250,6 +250,7 @@
|
||||
private static int dropInWorld(CommandListenerWrapper commandlistenerwrapper, Vec3D vec3d, List<ItemStack> list, CommandLoot.a commandloot_a) throws CommandSyntaxException {
|
||||
WorldServer worldserver = commandlistenerwrapper.getLevel();
|
||||
|
||||
+ list.removeIf(ItemStack::isEmpty); // CraftBukkit - SPIGOT-6959 Remove empty items for avoid throw an error in new EntityItem
|
||||
list.forEach((itemstack) -> {
|
||||
EntityItem entityitem = new EntityItem(worldserver, vec3d.x, vec3d.y, vec3d.z, itemstack.copy());
|
||||
|
@@ -1,19 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandReload.java
|
||||
+++ b/net/minecraft/server/commands/CommandReload.java
|
||||
@@ -44,6 +44,16 @@
|
||||
return collection1;
|
||||
}
|
||||
|
||||
+ // CraftBukkit start
|
||||
+ public static void reload(MinecraftServer minecraftserver) {
|
||||
+ ResourcePackRepository resourcepackrepository = minecraftserver.getPackRepository();
|
||||
+ SaveData savedata = minecraftserver.getWorldData();
|
||||
+ Collection<String> collection = resourcepackrepository.getSelectedIds();
|
||||
+ Collection<String> collection1 = discoverNewPacks(resourcepackrepository, savedata, collection);
|
||||
+ minecraftserver.reloadResources(collection1);
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
public static void register(CommandDispatcher<CommandListenerWrapper> commanddispatcher) {
|
||||
commanddispatcher.register((LiteralArgumentBuilder) ((LiteralArgumentBuilder) net.minecraft.commands.CommandDispatcher.literal("reload").requires((commandlistenerwrapper) -> {
|
||||
return commandlistenerwrapper.hasPermission(2);
|
@@ -1,11 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandSchedule.java
|
||||
+++ b/net/minecraft/server/commands/CommandSchedule.java
|
||||
@@ -58,7 +58,7 @@
|
||||
} else {
|
||||
long j = commandlistenerwrapper.getLevel().getGameTime() + (long) i;
|
||||
MinecraftKey minecraftkey = (MinecraftKey) pair.getFirst();
|
||||
- CustomFunctionCallbackTimerQueue<MinecraftServer> customfunctioncallbacktimerqueue = commandlistenerwrapper.getServer().getWorldData().overworldData().getScheduledEvents();
|
||||
+ CustomFunctionCallbackTimerQueue<MinecraftServer> customfunctioncallbacktimerqueue = commandlistenerwrapper.getLevel().serverLevelData.overworldData().getScheduledEvents(); // CraftBukkit - SPIGOT-6667: Use world specific function timer
|
||||
Optional<net.minecraft.commands.functions.CommandFunction<CommandListenerWrapper>> optional = ((Either) pair.getSecond()).left();
|
||||
String s;
|
||||
|
@@ -1,11 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandSetWorldSpawn.java
|
||||
+++ b/net/minecraft/server/commands/CommandSetWorldSpawn.java
|
||||
@@ -30,7 +30,7 @@
|
||||
private static int setSpawn(CommandListenerWrapper commandlistenerwrapper, BlockPosition blockposition, float f) {
|
||||
WorldServer worldserver = commandlistenerwrapper.getLevel();
|
||||
|
||||
- if (worldserver.dimension() != World.OVERWORLD) {
|
||||
+ if (false && worldserver.dimension() != World.OVERWORLD) { // CraftBukkit - SPIGOT-7649: allow in all worlds
|
||||
commandlistenerwrapper.sendFailure(IChatBaseComponent.translatable("commands.setworldspawn.failure.not_overworld"));
|
||||
return 0;
|
||||
} else {
|
@@ -1,11 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandSpawnpoint.java
|
||||
+++ b/net/minecraft/server/commands/CommandSpawnpoint.java
|
||||
@@ -41,7 +41,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
|
||||
|
||||
- entityplayer.setRespawnPosition(resourcekey, blockposition, f, true, false);
|
||||
+ entityplayer.setRespawnPosition(resourcekey, blockposition, f, true, false, org.bukkit.event.player.PlayerSpawnChangeEvent.Cause.COMMAND); // CraftBukkit
|
||||
}
|
||||
|
||||
String s = resourcekey.location().toString();
|
@@ -1,20 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandSpreadPlayers.java
|
||||
+++ b/net/minecraft/server/commands/CommandSpreadPlayers.java
|
||||
@@ -93,7 +93,7 @@
|
||||
if (entity instanceof EntityHuman) {
|
||||
set.add(entity.getTeam());
|
||||
} else {
|
||||
- set.add((Object) null);
|
||||
+ set.add((ScoreboardTeamBase) null); // CraftBukkit - decompile error
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
commandspreadplayers_a = acommandspreadplayers_a[j++];
|
||||
}
|
||||
|
||||
- entity.teleportTo(worldserver, (double) MathHelper.floor(commandspreadplayers_a.x) + 0.5D, (double) commandspreadplayers_a.getSpawnY(worldserver, i), (double) MathHelper.floor(commandspreadplayers_a.z) + 0.5D, Set.of(), entity.getYRot(), entity.getXRot(), true);
|
||||
+ entity.teleportTo(worldserver, (double) MathHelper.floor(commandspreadplayers_a.x) + 0.5D, (double) commandspreadplayers_a.getSpawnY(worldserver, i), (double) MathHelper.floor(commandspreadplayers_a.z) + 0.5D, Set.of(), entity.getYRot(), entity.getXRot(), true, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.COMMAND); // CraftBukkit - handle teleport reason
|
||||
d1 = Double.MAX_VALUE;
|
||||
CommandSpreadPlayers.a[] acommandspreadplayers_a1 = acommandspreadplayers_a;
|
||||
int k = acommandspreadplayers_a.length;
|
@@ -1,11 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandSummon.java
|
||||
+++ b/net/minecraft/server/commands/CommandSummon.java
|
||||
@@ -67,7 +67,7 @@
|
||||
((EntityInsentient) entity).finalizeSpawn(commandlistenerwrapper.getLevel(), commandlistenerwrapper.getLevel().getCurrentDifficultyAt(entity.blockPosition()), EntitySpawnReason.COMMAND, (GroupDataEntity) null);
|
||||
}
|
||||
|
||||
- if (!worldserver.tryAddFreshEntityWithPassengers(entity)) {
|
||||
+ if (!worldserver.tryAddFreshEntityWithPassengers(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.COMMAND)) { // CraftBukkit - pass a spawn reason of "COMMAND"
|
||||
throw CommandSummon.ERROR_DUPLICATE_UUID.create();
|
||||
} else {
|
||||
return entity;
|
@@ -1,49 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandTeleport.java
|
||||
+++ b/net/minecraft/server/commands/CommandTeleport.java
|
||||
@@ -31,6 +31,14 @@
|
||||
import net.minecraft.world.phys.Vec2F;
|
||||
import net.minecraft.world.phys.Vec3D;
|
||||
|
||||
+// CraftBukkit start
|
||||
+import net.minecraft.server.level.EntityPlayer;
|
||||
+import org.bukkit.Location;
|
||||
+import org.bukkit.craftbukkit.CraftWorld;
|
||||
+import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
+import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
+// CraftBukkit end
|
||||
+
|
||||
public class CommandTeleport {
|
||||
|
||||
private static final SimpleCommandExceptionType INVALID_POSITION = new SimpleCommandExceptionType(IChatBaseComponent.translatable("commands.teleport.invalidPosition"));
|
||||
@@ -167,7 +175,30 @@
|
||||
float f4 = MathHelper.wrapDegrees(f2);
|
||||
float f5 = MathHelper.wrapDegrees(f3);
|
||||
|
||||
- if (entity.teleportTo(worldserver, d3, d4, d5, set, f4, f5, true)) {
|
||||
+ // CraftBukkit start - Teleport event
|
||||
+ boolean result;
|
||||
+ if (entity instanceof EntityPlayer player) {
|
||||
+ result = player.teleportTo(worldserver, d3, d4, d5, set, f4, f5, true, PlayerTeleportEvent.TeleportCause.COMMAND);
|
||||
+ } else {
|
||||
+ Location to = new Location(worldserver.getWorld(), d3, d4, d5, f4, f5);
|
||||
+ EntityTeleportEvent event = new EntityTeleportEvent(entity.getBukkitEntity(), entity.getBukkitEntity().getLocation(), to);
|
||||
+ worldserver.getCraftServer().getPluginManager().callEvent(event);
|
||||
+ if (event.isCancelled()) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ d3 = to.getX();
|
||||
+ d4 = to.getY();
|
||||
+ d5 = to.getZ();
|
||||
+ f4 = to.getYaw();
|
||||
+ f5 = to.getPitch();
|
||||
+ worldserver = ((CraftWorld) to.getWorld()).getHandle();
|
||||
+
|
||||
+ result = entity.teleportTo(worldserver, d3, d4, d5, set, f4, f5, true);
|
||||
+ }
|
||||
+
|
||||
+ if (result) {
|
||||
+ // CraftBukkit end
|
||||
if (lookat != null) {
|
||||
lookat.perform(commandlistenerwrapper, entity);
|
||||
}
|
@@ -1,56 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandTime.java
|
||||
+++ b/net/minecraft/server/commands/CommandTime.java
|
||||
@@ -9,6 +9,11 @@
|
||||
import net.minecraft.network.chat.IChatBaseComponent;
|
||||
import net.minecraft.server.level.WorldServer;
|
||||
|
||||
+// CraftBukkit start
|
||||
+import org.bukkit.Bukkit;
|
||||
+import org.bukkit.event.world.TimeSkipEvent;
|
||||
+// CraftBukkit end
|
||||
+
|
||||
public class CommandTime {
|
||||
|
||||
public CommandTime() {}
|
||||
@@ -49,12 +54,18 @@
|
||||
}
|
||||
|
||||
public static int setTime(CommandListenerWrapper commandlistenerwrapper, int i) {
|
||||
- Iterator iterator = commandlistenerwrapper.getServer().getAllLevels().iterator();
|
||||
+ Iterator iterator = com.google.common.collect.Iterators.singletonIterator(commandlistenerwrapper.getLevel()); // CraftBukkit - SPIGOT-6496: Only set the time for the world the command originates in
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
WorldServer worldserver = (WorldServer) iterator.next();
|
||||
|
||||
- worldserver.setDayTime((long) i);
|
||||
+ // CraftBukkit start
|
||||
+ TimeSkipEvent event = new TimeSkipEvent(worldserver.getWorld(), TimeSkipEvent.SkipReason.COMMAND, i - worldserver.getDayTime());
|
||||
+ Bukkit.getPluginManager().callEvent(event);
|
||||
+ if (!event.isCancelled()) {
|
||||
+ worldserver.setDayTime((long) worldserver.getDayTime() + event.getSkipAmount());
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
|
||||
commandlistenerwrapper.getServer().forceTimeSynchronization();
|
||||
@@ -65,12 +76,18 @@
|
||||
}
|
||||
|
||||
public static int addTime(CommandListenerWrapper commandlistenerwrapper, int i) {
|
||||
- Iterator iterator = commandlistenerwrapper.getServer().getAllLevels().iterator();
|
||||
+ Iterator iterator = com.google.common.collect.Iterators.singletonIterator(commandlistenerwrapper.getLevel()); // CraftBukkit - SPIGOT-6496: Only set the time for the world the command originates in
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
WorldServer worldserver = (WorldServer) iterator.next();
|
||||
|
||||
- worldserver.setDayTime(worldserver.getDayTime() + (long) i);
|
||||
+ // CraftBukkit start
|
||||
+ TimeSkipEvent event = new TimeSkipEvent(worldserver.getWorld(), TimeSkipEvent.SkipReason.COMMAND, i);
|
||||
+ Bukkit.getPluginManager().callEvent(event);
|
||||
+ if (!event.isCancelled()) {
|
||||
+ worldserver.setDayTime(worldserver.getDayTime() + event.getSkipAmount());
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
|
||||
commandlistenerwrapper.getServer().forceTimeSynchronization();
|
@@ -1,34 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandWeather.java
|
||||
+++ b/net/minecraft/server/commands/CommandWeather.java
|
||||
@@ -34,11 +34,11 @@
|
||||
}
|
||||
|
||||
private static int getDuration(CommandListenerWrapper commandlistenerwrapper, int i, IntProvider intprovider) {
|
||||
- return i == -1 ? intprovider.sample(commandlistenerwrapper.getServer().overworld().getRandom()) : i;
|
||||
+ return i == -1 ? intprovider.sample(commandlistenerwrapper.getLevel().getRandom()) : i; // CraftBukkit - SPIGOT-7680: per-world
|
||||
}
|
||||
|
||||
private static int setClear(CommandListenerWrapper commandlistenerwrapper, int i) {
|
||||
- commandlistenerwrapper.getServer().overworld().setWeatherParameters(getDuration(commandlistenerwrapper, i, WorldServer.RAIN_DELAY), 0, false, false);
|
||||
+ commandlistenerwrapper.getLevel().setWeatherParameters(getDuration(commandlistenerwrapper, i, WorldServer.RAIN_DELAY), 0, false, false); // CraftBukkit - SPIGOT-7680: per-world
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
return IChatBaseComponent.translatable("commands.weather.set.clear");
|
||||
}, true);
|
||||
@@ -46,7 +46,7 @@
|
||||
}
|
||||
|
||||
private static int setRain(CommandListenerWrapper commandlistenerwrapper, int i) {
|
||||
- commandlistenerwrapper.getServer().overworld().setWeatherParameters(0, getDuration(commandlistenerwrapper, i, WorldServer.RAIN_DURATION), true, false);
|
||||
+ commandlistenerwrapper.getLevel().setWeatherParameters(0, getDuration(commandlistenerwrapper, i, WorldServer.RAIN_DURATION), true, false); // CraftBukkit - SPIGOT-7680: per-world
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
return IChatBaseComponent.translatable("commands.weather.set.rain");
|
||||
}, true);
|
||||
@@ -54,7 +54,7 @@
|
||||
}
|
||||
|
||||
private static int setThunder(CommandListenerWrapper commandlistenerwrapper, int i) {
|
||||
- commandlistenerwrapper.getServer().overworld().setWeatherParameters(0, getDuration(commandlistenerwrapper, i, WorldServer.THUNDER_DURATION), true, true);
|
||||
+ commandlistenerwrapper.getLevel().setWeatherParameters(0, getDuration(commandlistenerwrapper, i, WorldServer.THUNDER_DURATION), true, true); // CraftBukkit - SPIGOT-7680: per-world
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
return IChatBaseComponent.translatable("commands.weather.set.thunder");
|
||||
}, true);
|
@@ -1,65 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/CommandWorldBorder.java
|
||||
+++ b/net/minecraft/server/commands/CommandWorldBorder.java
|
||||
@@ -57,7 +57,7 @@
|
||||
}
|
||||
|
||||
private static int setDamageBuffer(CommandListenerWrapper commandlistenerwrapper, float f) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = commandlistenerwrapper.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = commandlistenerwrapper.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getDamageSafeZone() == (double) f) {
|
||||
throw CommandWorldBorder.ERROR_SAME_DAMAGE_BUFFER.create();
|
||||
@@ -71,7 +71,7 @@
|
||||
}
|
||||
|
||||
private static int setDamageAmount(CommandListenerWrapper commandlistenerwrapper, float f) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = commandlistenerwrapper.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = commandlistenerwrapper.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getDamagePerBlock() == (double) f) {
|
||||
throw CommandWorldBorder.ERROR_SAME_DAMAGE_AMOUNT.create();
|
||||
@@ -85,7 +85,7 @@
|
||||
}
|
||||
|
||||
private static int setWarningTime(CommandListenerWrapper commandlistenerwrapper, int i) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = commandlistenerwrapper.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = commandlistenerwrapper.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getWarningTime() == i) {
|
||||
throw CommandWorldBorder.ERROR_SAME_WARNING_TIME.create();
|
||||
@@ -99,7 +99,7 @@
|
||||
}
|
||||
|
||||
private static int setWarningDistance(CommandListenerWrapper commandlistenerwrapper, int i) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = commandlistenerwrapper.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = commandlistenerwrapper.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getWarningBlocks() == i) {
|
||||
throw CommandWorldBorder.ERROR_SAME_WARNING_DISTANCE.create();
|
||||
@@ -113,7 +113,7 @@
|
||||
}
|
||||
|
||||
private static int getSize(CommandListenerWrapper commandlistenerwrapper) {
|
||||
- double d0 = commandlistenerwrapper.getServer().overworld().getWorldBorder().getSize();
|
||||
+ double d0 = commandlistenerwrapper.getLevel().getWorldBorder().getSize(); // CraftBukkit
|
||||
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
return IChatBaseComponent.translatable("commands.worldborder.get", String.format(Locale.ROOT, "%.0f", d0));
|
||||
@@ -122,7 +122,7 @@
|
||||
}
|
||||
|
||||
private static int setCenter(CommandListenerWrapper commandlistenerwrapper, Vec2F vec2f) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = commandlistenerwrapper.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = commandlistenerwrapper.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getCenterX() == (double) vec2f.x && worldborder.getCenterZ() == (double) vec2f.y) {
|
||||
throw CommandWorldBorder.ERROR_SAME_CENTER.create();
|
||||
@@ -138,7 +138,7 @@
|
||||
}
|
||||
|
||||
private static int setSize(CommandListenerWrapper commandlistenerwrapper, double d0, long i) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = commandlistenerwrapper.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = commandlistenerwrapper.getLevel().getWorldBorder(); // CraftBukkit
|
||||
double d1 = worldborder.getSize();
|
||||
|
||||
if (d1 == d0) {
|
@@ -0,0 +1,17 @@
|
||||
--- a/net/minecraft/server/commands/DifficultyCommand.java
|
||||
+++ b/net/minecraft/server/commands/DifficultyCommand.java
|
||||
@@ -44,11 +44,12 @@
|
||||
|
||||
public static int setDifficulty(CommandSourceStack source, Difficulty difficulty) throws CommandSyntaxException {
|
||||
MinecraftServer minecraftserver = source.getServer();
|
||||
+ net.minecraft.server.level.ServerLevel worldServer = source.getLevel(); // CraftBukkit
|
||||
|
||||
- if (minecraftserver.getWorldData().getDifficulty() == difficulty) {
|
||||
+ if (worldServer.getDifficulty() == difficulty) { // CraftBukkit
|
||||
throw DifficultyCommand.ERROR_ALREADY_DIFFICULT.create(difficulty.getKey());
|
||||
} else {
|
||||
- minecraftserver.setDifficulty(difficulty, true);
|
||||
+ worldServer.serverLevelData.setDifficulty(difficulty); // CraftBukkit
|
||||
source.sendSuccess(() -> {
|
||||
return Component.translatable("commands.difficulty.success", difficulty.getDisplayName());
|
||||
}, true);
|
@@ -0,0 +1,29 @@
|
||||
--- a/net/minecraft/server/commands/EffectCommands.java
|
||||
+++ b/net/minecraft/server/commands/EffectCommands.java
|
||||
@@ -84,7 +84,7 @@
|
||||
if (entity instanceof LivingEntity) {
|
||||
MobEffectInstance mobeffect = new MobEffectInstance(statusEffect, k, amplifier, false, showParticles);
|
||||
|
||||
- if (((LivingEntity) entity).addEffect(mobeffect, source.getEntity())) {
|
||||
+ if (((LivingEntity) entity).addEffect(mobeffect, source.getEntity(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.COMMAND)) { // CraftBukkit
|
||||
++j;
|
||||
}
|
||||
}
|
||||
@@ -114,7 +114,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
|
||||
- if (entity instanceof LivingEntity && ((LivingEntity) entity).removeAllEffects()) {
|
||||
+ if (entity instanceof LivingEntity && ((LivingEntity) entity).removeAllEffects(org.bukkit.event.entity.EntityPotionEffectEvent.Cause.COMMAND)) { // CraftBukkit
|
||||
++i;
|
||||
}
|
||||
}
|
||||
@@ -144,7 +144,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
|
||||
- if (entity instanceof LivingEntity && ((LivingEntity) entity).removeEffect(statusEffect)) {
|
||||
+ if (entity instanceof LivingEntity && ((LivingEntity) entity).removeEffect(statusEffect, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.COMMAND)) { // CraftBukkit
|
||||
++i;
|
||||
}
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
--- a/net/minecraft/server/commands/GameRuleCommand.java
|
||||
+++ b/net/minecraft/server/commands/GameRuleCommand.java
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
static <T extends GameRules.Value<T>> int setRule(CommandContext<CommandSourceStack> context, GameRules.Key<T> key) {
|
||||
CommandSourceStack commandlistenerwrapper = (CommandSourceStack) context.getSource();
|
||||
- T t0 = commandlistenerwrapper.getServer().getGameRules().getRule(key);
|
||||
+ T t0 = commandlistenerwrapper.getLevel().getGameRules().getRule(key); // CraftBukkit
|
||||
|
||||
t0.setFromArgument(context, "value");
|
||||
commandlistenerwrapper.sendSuccess(() -> {
|
||||
@@ -44,7 +44,7 @@
|
||||
}
|
||||
|
||||
static <T extends GameRules.Value<T>> int queryRule(CommandSourceStack source, GameRules.Key<T> key) {
|
||||
- T t0 = source.getServer().getGameRules().getRule(key);
|
||||
+ T t0 = source.getLevel().getGameRules().getRule(key); // CraftBukkit
|
||||
|
||||
source.sendSuccess(() -> {
|
||||
return Component.translatable("commands.gamerule.query", key.getId(), t0.toString());
|
@@ -1,7 +1,7 @@
|
||||
--- a/net/minecraft/server/commands/CommandGive.java
|
||||
+++ b/net/minecraft/server/commands/CommandGive.java
|
||||
--- a/net/minecraft/server/commands/GiveCommand.java
|
||||
+++ b/net/minecraft/server/commands/GiveCommand.java
|
||||
@@ -60,7 +60,7 @@
|
||||
EntityItem entityitem;
|
||||
ItemEntity entityitem;
|
||||
|
||||
if (flag && itemstack1.isEmpty()) {
|
||||
- entityitem = entityplayer.drop(itemstack, false);
|
@@ -0,0 +1,18 @@
|
||||
--- a/net/minecraft/server/commands/ListPlayersCommand.java
|
||||
+++ b/net/minecraft/server/commands/ListPlayersCommand.java
|
||||
@@ -35,7 +35,14 @@
|
||||
|
||||
private static int format(CommandSourceStack source, Function<ServerPlayer, Component> nameProvider) {
|
||||
PlayerList playerlist = source.getServer().getPlayerList();
|
||||
- List<ServerPlayer> list = playerlist.getPlayers();
|
||||
+ // CraftBukkit start
|
||||
+ List<ServerPlayer> players = playerlist.getPlayers();
|
||||
+ if (source.getBukkitSender() instanceof org.bukkit.entity.Player) {
|
||||
+ org.bukkit.entity.Player sender = (org.bukkit.entity.Player) source.getBukkitSender();
|
||||
+ players = players.stream().filter((ep) -> sender.canSee(ep.getBukkitEntity())).collect(java.util.stream.Collectors.toList());
|
||||
+ }
|
||||
+ List<ServerPlayer> list = players;
|
||||
+ // CraftBukkit end
|
||||
Component ichatbasecomponent = ComponentUtils.formatList(list, nameProvider);
|
||||
|
||||
source.sendSuccess(() -> {
|
@@ -0,0 +1,19 @@
|
||||
--- a/net/minecraft/server/commands/LootCommand.java
|
||||
+++ b/net/minecraft/server/commands/LootCommand.java
|
||||
@@ -95,7 +95,7 @@
|
||||
}
|
||||
|
||||
private static <T extends ArgumentBuilder<CommandSourceStack, T>> T addTargets(T rootArgument, LootCommand.TailProvider sourceConstructor) {
|
||||
- return rootArgument.then(((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("replace").then(net.minecraft.commands.Commands.literal("entity").then(net.minecraft.commands.Commands.argument("entities", EntityArgument.entities()).then(sourceConstructor.construct(net.minecraft.commands.Commands.argument("slot", SlotArgument.slot()), (commandcontext, list, commandloot_a) -> {
|
||||
+ return (T) rootArgument.then(((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("replace").then(net.minecraft.commands.Commands.literal("entity").then(net.minecraft.commands.Commands.argument("entities", EntityArgument.entities()).then(sourceConstructor.construct(net.minecraft.commands.Commands.argument("slot", SlotArgument.slot()), (commandcontext, list, commandloot_a) -> { // CraftBukkit - decompile error
|
||||
return LootCommand.entityReplace(EntityArgument.getEntities(commandcontext, "entities"), SlotArgument.getSlot(commandcontext, "slot"), list.size(), list, commandloot_a);
|
||||
}).then(sourceConstructor.construct(net.minecraft.commands.Commands.argument("count", IntegerArgumentType.integer(0)), (commandcontext, list, commandloot_a) -> {
|
||||
return LootCommand.entityReplace(EntityArgument.getEntities(commandcontext, "entities"), SlotArgument.getSlot(commandcontext, "slot"), IntegerArgumentType.getInteger(commandcontext, "count"), list, commandloot_a);
|
||||
@@ -250,6 +250,7 @@
|
||||
private static int dropInWorld(CommandSourceStack source, Vec3 pos, List<ItemStack> stacks, LootCommand.Callback messageSender) throws CommandSyntaxException {
|
||||
ServerLevel worldserver = source.getLevel();
|
||||
|
||||
+ stacks.removeIf(ItemStack::isEmpty); // CraftBukkit - SPIGOT-6959 Remove empty items for avoid throw an error in new EntityItem
|
||||
stacks.forEach((itemstack) -> {
|
||||
ItemEntity entityitem = new ItemEntity(worldserver, pos.x, pos.y, pos.z, itemstack.copy());
|
||||
|
@@ -0,0 +1,10 @@
|
||||
--- a/net/minecraft/server/commands/PlaceCommand.java
|
||||
+++ b/net/minecraft/server/commands/PlaceCommand.java
|
||||
@@ -132,6 +132,7 @@
|
||||
if (!structurestart.isValid()) {
|
||||
throw PlaceCommand.ERROR_STRUCTURE_FAILED.create();
|
||||
} else {
|
||||
+ structurestart.generationEventCause = org.bukkit.event.world.AsyncStructureGenerateEvent.Cause.COMMAND; // CraftBukkit - set AsyncStructureGenerateEvent.Cause.COMMAND as generation cause
|
||||
BoundingBox structureboundingbox = structurestart.getBoundingBox();
|
||||
ChunkPos chunkcoordintpair = new ChunkPos(SectionPos.blockToSectionCoord(structureboundingbox.minX()), SectionPos.blockToSectionCoord(structureboundingbox.minZ()));
|
||||
ChunkPos chunkcoordintpair1 = new ChunkPos(SectionPos.blockToSectionCoord(structureboundingbox.maxX()), SectionPos.blockToSectionCoord(structureboundingbox.maxZ()));
|
@@ -1,10 +0,0 @@
|
||||
--- a/net/minecraft/server/commands/PlaceCommand.java
|
||||
+++ b/net/minecraft/server/commands/PlaceCommand.java
|
||||
@@ -132,6 +132,7 @@
|
||||
if (!structurestart.isValid()) {
|
||||
throw PlaceCommand.ERROR_STRUCTURE_FAILED.create();
|
||||
} else {
|
||||
+ structurestart.generationEventCause = org.bukkit.event.world.AsyncStructureGenerateEvent.Cause.COMMAND; // CraftBukkit - set AsyncStructureGenerateEvent.Cause.COMMAND as generation cause
|
||||
StructureBoundingBox structureboundingbox = structurestart.getBoundingBox();
|
||||
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(SectionPosition.blockToSectionCoord(structureboundingbox.minX()), SectionPosition.blockToSectionCoord(structureboundingbox.minZ()));
|
||||
ChunkCoordIntPair chunkcoordintpair1 = new ChunkCoordIntPair(SectionPosition.blockToSectionCoord(structureboundingbox.maxX()), SectionPosition.blockToSectionCoord(structureboundingbox.maxZ()));
|
@@ -0,0 +1,19 @@
|
||||
--- a/net/minecraft/server/commands/ReloadCommand.java
|
||||
+++ b/net/minecraft/server/commands/ReloadCommand.java
|
||||
@@ -44,6 +44,16 @@
|
||||
return collection1;
|
||||
}
|
||||
|
||||
+ // CraftBukkit start
|
||||
+ public static void reload(MinecraftServer minecraftserver) {
|
||||
+ PackRepository resourcepackrepository = minecraftserver.getPackRepository();
|
||||
+ WorldData savedata = minecraftserver.getWorldData();
|
||||
+ Collection<String> collection = resourcepackrepository.getSelectedIds();
|
||||
+ Collection<String> collection1 = ReloadCommand.discoverNewPacks(resourcepackrepository, savedata, collection);
|
||||
+ minecraftserver.reloadResources(collection1);
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register((LiteralArgumentBuilder) ((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("reload").requires((commandlistenerwrapper) -> {
|
||||
return commandlistenerwrapper.hasPermission(2);
|
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/server/commands/ScheduleCommand.java
|
||||
+++ b/net/minecraft/server/commands/ScheduleCommand.java
|
||||
@@ -58,7 +58,7 @@
|
||||
} else {
|
||||
long j = source.getLevel().getGameTime() + (long) time;
|
||||
ResourceLocation minecraftkey = (ResourceLocation) function.getFirst();
|
||||
- TimerQueue<MinecraftServer> customfunctioncallbacktimerqueue = source.getServer().getWorldData().overworldData().getScheduledEvents();
|
||||
+ TimerQueue<MinecraftServer> customfunctioncallbacktimerqueue = source.getLevel().serverLevelData.overworldData().getScheduledEvents(); // CraftBukkit - SPIGOT-6667: Use world specific function timer
|
||||
Optional<net.minecraft.commands.functions.CommandFunction<CommandSourceStack>> optional = ((Either) function.getSecond()).left();
|
||||
String s;
|
||||
|
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/server/commands/SetSpawnCommand.java
|
||||
+++ b/net/minecraft/server/commands/SetSpawnCommand.java
|
||||
@@ -41,7 +41,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
ServerPlayer entityplayer = (ServerPlayer) iterator.next();
|
||||
|
||||
- entityplayer.setRespawnPosition(resourcekey, pos, angle, true, false);
|
||||
+ entityplayer.setRespawnPosition(resourcekey, pos, angle, true, false, org.bukkit.event.player.PlayerSpawnChangeEvent.Cause.COMMAND); // CraftBukkit
|
||||
}
|
||||
|
||||
String s = resourcekey.location().toString();
|
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/server/commands/SetWorldSpawnCommand.java
|
||||
+++ b/net/minecraft/server/commands/SetWorldSpawnCommand.java
|
||||
@@ -30,7 +30,7 @@
|
||||
private static int setSpawn(CommandSourceStack source, BlockPos pos, float angle) {
|
||||
ServerLevel worldserver = source.getLevel();
|
||||
|
||||
- if (worldserver.dimension() != Level.OVERWORLD) {
|
||||
+ if (false && worldserver.dimension() != Level.OVERWORLD) { // CraftBukkit - SPIGOT-7649: allow in all worlds
|
||||
source.sendFailure(Component.translatable("commands.setworldspawn.failure.not_overworld"));
|
||||
return 0;
|
||||
} else {
|
@@ -0,0 +1,20 @@
|
||||
--- a/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||
+++ b/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||
@@ -93,7 +93,7 @@
|
||||
if (entity instanceof Player) {
|
||||
set.add(entity.getTeam());
|
||||
} else {
|
||||
- set.add((Object) null);
|
||||
+ set.add((Team) null); // CraftBukkit - decompile error
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
commandspreadplayers_a = piles[j++];
|
||||
}
|
||||
|
||||
- entity.teleportTo(world, (double) Mth.floor(commandspreadplayers_a.x) + 0.5D, (double) commandspreadplayers_a.getSpawnY(world, maxY), (double) Mth.floor(commandspreadplayers_a.z) + 0.5D, Set.of(), entity.getYRot(), entity.getXRot(), true);
|
||||
+ entity.teleportTo(world, (double) Mth.floor(commandspreadplayers_a.x) + 0.5D, (double) commandspreadplayers_a.getSpawnY(world, maxY), (double) Mth.floor(commandspreadplayers_a.z) + 0.5D, Set.of(), entity.getYRot(), entity.getXRot(), true, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.COMMAND); // CraftBukkit - handle teleport reason
|
||||
d1 = Double.MAX_VALUE;
|
||||
SpreadPlayersCommand.Position[] acommandspreadplayers_a1 = piles;
|
||||
int k = piles.length;
|
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/server/commands/SummonCommand.java
|
||||
+++ b/net/minecraft/server/commands/SummonCommand.java
|
||||
@@ -67,7 +67,7 @@
|
||||
((Mob) entity).finalizeSpawn(source.getLevel(), source.getLevel().getCurrentDifficultyAt(entity.blockPosition()), EntitySpawnReason.COMMAND, (SpawnGroupData) null);
|
||||
}
|
||||
|
||||
- if (!worldserver.tryAddFreshEntityWithPassengers(entity)) {
|
||||
+ if (!worldserver.tryAddFreshEntityWithPassengers(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.COMMAND)) { // CraftBukkit - pass a spawn reason of "COMMAND"
|
||||
throw SummonCommand.ERROR_DUPLICATE_UUID.create();
|
||||
} else {
|
||||
return entity;
|
@@ -0,0 +1,54 @@
|
||||
--- a/net/minecraft/server/commands/TeleportCommand.java
|
||||
+++ b/net/minecraft/server/commands/TeleportCommand.java
|
||||
@@ -22,6 +22,7 @@
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
+import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
@@ -30,6 +31,11 @@
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.Vec2;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
+import org.bukkit.Location;
|
||||
+import org.bukkit.craftbukkit.CraftWorld;
|
||||
+import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
+import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
+// CraftBukkit end
|
||||
|
||||
public class TeleportCommand {
|
||||
|
||||
@@ -167,7 +173,30 @@
|
||||
float f4 = Mth.wrapDegrees(f2);
|
||||
float f5 = Mth.wrapDegrees(f3);
|
||||
|
||||
- if (target.teleportTo(world, d3, d4, d5, movementFlags, f4, f5, true)) {
|
||||
+ // CraftBukkit start - Teleport event
|
||||
+ boolean result;
|
||||
+ if (target instanceof ServerPlayer player) {
|
||||
+ result = player.teleportTo(world, d3, d4, d5, movementFlags, f4, f5, true, PlayerTeleportEvent.TeleportCause.COMMAND);
|
||||
+ } else {
|
||||
+ Location to = new Location(world.getWorld(), d3, d4, d5, f4, f5);
|
||||
+ EntityTeleportEvent event = new EntityTeleportEvent(target.getBukkitEntity(), target.getBukkitEntity().getLocation(), to);
|
||||
+ world.getCraftServer().getPluginManager().callEvent(event);
|
||||
+ if (event.isCancelled()) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ d3 = to.getX();
|
||||
+ d4 = to.getY();
|
||||
+ d5 = to.getZ();
|
||||
+ f4 = to.getYaw();
|
||||
+ f5 = to.getPitch();
|
||||
+ world = ((CraftWorld) to.getWorld()).getHandle();
|
||||
+
|
||||
+ result = target.teleportTo(world, d3, d4, d5, movementFlags, f4, f5, true);
|
||||
+ }
|
||||
+
|
||||
+ if (result) {
|
||||
+ // CraftBukkit end
|
||||
if (facingLocation != null) {
|
||||
facingLocation.perform(source, target);
|
||||
}
|
@@ -0,0 +1,55 @@
|
||||
--- a/net/minecraft/server/commands/TimeCommand.java
|
||||
+++ b/net/minecraft/server/commands/TimeCommand.java
|
||||
@@ -8,6 +8,10 @@
|
||||
import net.minecraft.commands.arguments.TimeArgument;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
+// CraftBukkit start
|
||||
+import org.bukkit.Bukkit;
|
||||
+import org.bukkit.event.world.TimeSkipEvent;
|
||||
+// CraftBukkit end
|
||||
|
||||
public class TimeCommand {
|
||||
|
||||
@@ -49,12 +53,18 @@
|
||||
}
|
||||
|
||||
public static int setTime(CommandSourceStack source, int time) {
|
||||
- Iterator iterator = source.getServer().getAllLevels().iterator();
|
||||
+ Iterator iterator = com.google.common.collect.Iterators.singletonIterator(source.getLevel()); // CraftBukkit - SPIGOT-6496: Only set the time for the world the command originates in
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
ServerLevel worldserver = (ServerLevel) iterator.next();
|
||||
|
||||
- worldserver.setDayTime((long) time);
|
||||
+ // CraftBukkit start
|
||||
+ TimeSkipEvent event = new TimeSkipEvent(worldserver.getWorld(), TimeSkipEvent.SkipReason.COMMAND, time - worldserver.getDayTime());
|
||||
+ Bukkit.getPluginManager().callEvent(event);
|
||||
+ if (!event.isCancelled()) {
|
||||
+ worldserver.setDayTime((long) worldserver.getDayTime() + event.getSkipAmount());
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
|
||||
source.getServer().forceTimeSynchronization();
|
||||
@@ -65,12 +75,18 @@
|
||||
}
|
||||
|
||||
public static int addTime(CommandSourceStack source, int time) {
|
||||
- Iterator iterator = source.getServer().getAllLevels().iterator();
|
||||
+ Iterator iterator = com.google.common.collect.Iterators.singletonIterator(source.getLevel()); // CraftBukkit - SPIGOT-6496: Only set the time for the world the command originates in
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
ServerLevel worldserver = (ServerLevel) iterator.next();
|
||||
|
||||
- worldserver.setDayTime(worldserver.getDayTime() + (long) time);
|
||||
+ // CraftBukkit start
|
||||
+ TimeSkipEvent event = new TimeSkipEvent(worldserver.getWorld(), TimeSkipEvent.SkipReason.COMMAND, time);
|
||||
+ Bukkit.getPluginManager().callEvent(event);
|
||||
+ if (!event.isCancelled()) {
|
||||
+ worldserver.setDayTime(worldserver.getDayTime() + event.getSkipAmount());
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
|
||||
source.getServer().forceTimeSynchronization();
|
@@ -0,0 +1,34 @@
|
||||
--- a/net/minecraft/server/commands/WeatherCommand.java
|
||||
+++ b/net/minecraft/server/commands/WeatherCommand.java
|
||||
@@ -34,11 +34,11 @@
|
||||
}
|
||||
|
||||
private static int getDuration(CommandSourceStack source, int duration, IntProvider provider) {
|
||||
- return duration == -1 ? provider.sample(source.getServer().overworld().getRandom()) : duration;
|
||||
+ return duration == -1 ? provider.sample(source.getLevel().getRandom()) : duration; // CraftBukkit - SPIGOT-7680: per-world
|
||||
}
|
||||
|
||||
private static int setClear(CommandSourceStack source, int duration) {
|
||||
- source.getServer().overworld().setWeatherParameters(WeatherCommand.getDuration(source, duration, ServerLevel.RAIN_DELAY), 0, false, false);
|
||||
+ source.getLevel().setWeatherParameters(WeatherCommand.getDuration(source, duration, ServerLevel.RAIN_DELAY), 0, false, false); // CraftBukkit - SPIGOT-7680: per-world
|
||||
source.sendSuccess(() -> {
|
||||
return Component.translatable("commands.weather.set.clear");
|
||||
}, true);
|
||||
@@ -46,7 +46,7 @@
|
||||
}
|
||||
|
||||
private static int setRain(CommandSourceStack source, int duration) {
|
||||
- source.getServer().overworld().setWeatherParameters(0, WeatherCommand.getDuration(source, duration, ServerLevel.RAIN_DURATION), true, false);
|
||||
+ source.getLevel().setWeatherParameters(0, WeatherCommand.getDuration(source, duration, ServerLevel.RAIN_DURATION), true, false); // CraftBukkit - SPIGOT-7680: per-world
|
||||
source.sendSuccess(() -> {
|
||||
return Component.translatable("commands.weather.set.rain");
|
||||
}, true);
|
||||
@@ -54,7 +54,7 @@
|
||||
}
|
||||
|
||||
private static int setThunder(CommandSourceStack source, int duration) {
|
||||
- source.getServer().overworld().setWeatherParameters(0, WeatherCommand.getDuration(source, duration, ServerLevel.THUNDER_DURATION), true, true);
|
||||
+ source.getLevel().setWeatherParameters(0, WeatherCommand.getDuration(source, duration, ServerLevel.THUNDER_DURATION), true, true); // CraftBukkit - SPIGOT-7680: per-world
|
||||
source.sendSuccess(() -> {
|
||||
return Component.translatable("commands.weather.set.thunder");
|
||||
}, true);
|
@@ -0,0 +1,65 @@
|
||||
--- a/net/minecraft/server/commands/WorldBorderCommand.java
|
||||
+++ b/net/minecraft/server/commands/WorldBorderCommand.java
|
||||
@@ -57,7 +57,7 @@
|
||||
}
|
||||
|
||||
private static int setDamageBuffer(CommandSourceStack source, float distance) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = source.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getDamageSafeZone() == (double) distance) {
|
||||
throw WorldBorderCommand.ERROR_SAME_DAMAGE_BUFFER.create();
|
||||
@@ -71,7 +71,7 @@
|
||||
}
|
||||
|
||||
private static int setDamageAmount(CommandSourceStack source, float damagePerBlock) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = source.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getDamagePerBlock() == (double) damagePerBlock) {
|
||||
throw WorldBorderCommand.ERROR_SAME_DAMAGE_AMOUNT.create();
|
||||
@@ -85,7 +85,7 @@
|
||||
}
|
||||
|
||||
private static int setWarningTime(CommandSourceStack source, int time) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = source.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getWarningTime() == time) {
|
||||
throw WorldBorderCommand.ERROR_SAME_WARNING_TIME.create();
|
||||
@@ -99,7 +99,7 @@
|
||||
}
|
||||
|
||||
private static int setWarningDistance(CommandSourceStack source, int distance) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = source.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getWarningBlocks() == distance) {
|
||||
throw WorldBorderCommand.ERROR_SAME_WARNING_DISTANCE.create();
|
||||
@@ -113,7 +113,7 @@
|
||||
}
|
||||
|
||||
private static int getSize(CommandSourceStack source) {
|
||||
- double d0 = source.getServer().overworld().getWorldBorder().getSize();
|
||||
+ double d0 = source.getLevel().getWorldBorder().getSize(); // CraftBukkit
|
||||
|
||||
source.sendSuccess(() -> {
|
||||
return Component.translatable("commands.worldborder.get", String.format(Locale.ROOT, "%.0f", d0));
|
||||
@@ -122,7 +122,7 @@
|
||||
}
|
||||
|
||||
private static int setCenter(CommandSourceStack source, Vec2 pos) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = source.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
|
||||
|
||||
if (worldborder.getCenterX() == (double) pos.x && worldborder.getCenterZ() == (double) pos.y) {
|
||||
throw WorldBorderCommand.ERROR_SAME_CENTER.create();
|
||||
@@ -138,7 +138,7 @@
|
||||
}
|
||||
|
||||
private static int setSize(CommandSourceStack source, double distance, long time) throws CommandSyntaxException {
|
||||
- WorldBorder worldborder = source.getServer().overworld().getWorldBorder();
|
||||
+ WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
|
||||
double d1 = worldborder.getSize();
|
||||
|
||||
if (d1 == distance) {
|
Reference in New Issue
Block a user