mirror of
https://github.com/PaperMC/Folia.git
synced 2024-11-21 11:55:11 +01:00
Make Damagecommand safe, and remove RideCommand
This commit is contained in:
parent
4c183bf960
commit
d5b837c457
@ -10848,7 +10848,7 @@ index 7b6b51392b123d34382233adcf4c3d4867bdaa32..c6a28a1ff59a352b647f5f6c1e04f623
|
||||
|
||||
protected CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity, boolean silent, @Nullable ResultConsumer<CommandSourceStack> consumer, EntityAnchorArgument.Anchor entityAnchor, CommandSigningContext signedArguments, TaskChainer messageChainTaskQueue) {
|
||||
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||
index 87cc7562e4a166d078fe11b7f6980497fc0bd33e..2ad80b9afdebfd40a8ed542480b60dc4eed758f7 100644
|
||||
index 87cc7562e4a166d078fe11b7f6980497fc0bd33e..e970a9807f1497b8b9f4155f558f4fcb719cb368 100644
|
||||
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||
@@ -143,13 +143,13 @@ public class Commands {
|
||||
@ -10895,7 +10895,8 @@ index 87cc7562e4a166d078fe11b7f6980497fc0bd33e..2ad80b9afdebfd40a8ed542480b60dc4
|
||||
- ReloadCommand.register(this.dispatcher);
|
||||
+ //ReloadCommand.register(this.dispatcher); // Folia - region threading
|
||||
RecipeCommand.register(this.dispatcher);
|
||||
RideCommand.register(this.dispatcher);
|
||||
- RideCommand.register(this.dispatcher);
|
||||
+ //RideCommand.register(this.dispatcher); // Folia - region threading - TODO later
|
||||
SayCommand.register(this.dispatcher);
|
||||
- ScheduleCommand.register(this.dispatcher);
|
||||
- ScoreboardCommand.register(this.dispatcher);
|
||||
@ -12326,6 +12327,42 @@ index 74623df731de543d3ef5832e818b10adec7b0f01..74a5e35c66e4d6aeae61733ad3ef1e51
|
||||
}
|
||||
|
||||
if (i == 0) {
|
||||
diff --git a/src/main/java/net/minecraft/server/commands/DamageCommand.java b/src/main/java/net/minecraft/server/commands/DamageCommand.java
|
||||
index 95d11f48d201ccf5d9f73a3fcf78782669612f75..c96355360a379849a2f2285e41d7bd7ee6a22fa8 100644
|
||||
--- a/src/main/java/net/minecraft/server/commands/DamageCommand.java
|
||||
+++ b/src/main/java/net/minecraft/server/commands/DamageCommand.java
|
||||
@@ -34,12 +34,28 @@ public class DamageCommand {
|
||||
})))))))));
|
||||
}
|
||||
|
||||
+ // Folia start - region threading
|
||||
+ private static void sendMessage(CommandSourceStack src, CommandSyntaxException ex) {
|
||||
+ src.sendFailure((Component)ex.getRawMessage());
|
||||
+ }
|
||||
+ // Folia end - region threading
|
||||
+
|
||||
private static int damage(CommandSourceStack source, Entity target, float amount, DamageSource damageSource) throws CommandSyntaxException {
|
||||
- if (target.hurt(damageSource, amount)) {
|
||||
- source.sendSuccess(Component.translatable("commands.damage.success", amount, target.getDisplayName()), true);
|
||||
- return 1;
|
||||
+ // Folia start - region threading
|
||||
+ target.getBukkitEntity().taskScheduler.schedule((Entity t) -> {
|
||||
+ try { // Folia end - region threading
|
||||
+ if (t.hurt(damageSource, amount)) { // Folia - region threading
|
||||
+ source.sendSuccess(Component.translatable("commands.damage.success", amount, t.getDisplayName()), true); // Folia - region threading
|
||||
+ return; // Folia - region threading
|
||||
} else {
|
||||
throw ERROR_INVULNERABLE.create();
|
||||
}
|
||||
+ // Folia start - region threading
|
||||
+ } catch (CommandSyntaxException ex) {
|
||||
+ sendMessage(source, ex);
|
||||
+ }
|
||||
+ }, null, 1L);
|
||||
+ return 0;
|
||||
+ // Folia end - region threading
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/commands/DefaultGameModeCommands.java b/src/main/java/net/minecraft/server/commands/DefaultGameModeCommands.java
|
||||
index 1bf4c5b36f53ef1e71d50d1a9af8e1410e5dff60..fd455c794fa52b565a5741b376bc394ac8dda07c 100644
|
||||
--- a/src/main/java/net/minecraft/server/commands/DefaultGameModeCommands.java
|
||||
|
Loading…
Reference in New Issue
Block a user