mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
use magic damage type instead of custom
This commit is contained in:
@@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors!
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index e28bc6ad060b487b2223379e0187c082c0e69f7f..2b8d8dafc0df272ad095130021795cfa7716ef46 100644
|
index e28bc6ad060b487b2223379e0187c082c0e69f7f..fb4852272753747ba925962e51cff848fd1af9e3 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -1686,6 +1686,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -1686,6 +1686,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@@ -14,7 +14,7 @@ index e28bc6ad060b487b2223379e0187c082c0e69f7f..2b8d8dafc0df272ad095130021795cfa
|
|||||||
|
|
||||||
+ // Purpur Start
|
+ // Purpur Start
|
||||||
+ if (this.player.level.purpurConfig.dontRunWithScissors && this.player.isSprinting() && (isScissor(this.player.getItemInHand(InteractionHand.MAIN_HAND)) || isScissor(this.player.getItemInHand(InteractionHand.OFF_HAND))) && (int) (Math.random() * 10) == 0) {
|
+ if (this.player.level.purpurConfig.dontRunWithScissors && this.player.isSprinting() && (isScissor(this.player.getItemInHand(InteractionHand.MAIN_HAND)) || isScissor(this.player.getItemInHand(InteractionHand.OFF_HAND))) && (int) (Math.random() * 10) == 0) {
|
||||||
+ this.player.hurt(this.player.damageSources().scissors(), (float) this.player.level.purpurConfig.scissorsRunningDamage);
|
+ this.player.hurt(this.player.damageSources().magic(), (float) this.player.level.purpurConfig.scissorsRunningDamage);
|
||||||
+ if (!org.purpurmc.purpur.PurpurConfig.dontRunWithScissors.isBlank()) this.player.sendActionBarMessage(org.purpurmc.purpur.PurpurConfig.dontRunWithScissors);
|
+ if (!org.purpurmc.purpur.PurpurConfig.dontRunWithScissors.isBlank()) this.player.sendActionBarMessage(org.purpurmc.purpur.PurpurConfig.dontRunWithScissors);
|
||||||
+ }
|
+ }
|
||||||
+ // Purpur End
|
+ // Purpur End
|
||||||
@@ -35,72 +35,6 @@ index e28bc6ad060b487b2223379e0187c082c0e69f7f..2b8d8dafc0df272ad095130021795cfa
|
|||||||
private boolean isPlayerCollidingWithAnythingNew(LevelReader world, AABB box) {
|
private boolean isPlayerCollidingWithAnythingNew(LevelReader world, AABB box) {
|
||||||
Iterable<VoxelShape> iterable = world.getCollisions(this.player, this.player.getBoundingBox().deflate(9.999999747378752E-6D));
|
Iterable<VoxelShape> iterable = world.getCollisions(this.player, this.player.getBoundingBox().deflate(9.999999747378752E-6D));
|
||||||
VoxelShape voxelshape = Shapes.create(box.deflate(9.999999747378752E-6D));
|
VoxelShape voxelshape = Shapes.create(box.deflate(9.999999747378752E-6D));
|
||||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
|
||||||
index d3d9bb2cdcaa3d671370ee3014341fe741275743..dc8d1a5edd415724b1b5417a1bb3cca13c47d28f 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
|
||||||
@@ -39,6 +39,7 @@ public class DamageSources {
|
|
||||||
private final DamageSource sweetBerryBush;
|
|
||||||
private final DamageSource freeze;
|
|
||||||
private final DamageSource stalagmite;
|
|
||||||
+ private final DamageSource scissors;
|
|
||||||
// CraftBukkit start
|
|
||||||
public final DamageSource melting;
|
|
||||||
public final DamageSource poison;
|
|
||||||
@@ -69,6 +70,7 @@ public class DamageSources {
|
|
||||||
this.sweetBerryBush = this.source(DamageTypes.SWEET_BERRY_BUSH);
|
|
||||||
this.freeze = this.source(DamageTypes.FREEZE);
|
|
||||||
this.stalagmite = this.source(DamageTypes.STALAGMITE);
|
|
||||||
+ this.scissors = this.source(DamageTypes.SCISSORS);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DamageSource source(ResourceKey<DamageType> key) {
|
|
||||||
@@ -167,6 +169,10 @@ public class DamageSources {
|
|
||||||
return this.stalagmite;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public DamageSource scissors() {
|
|
||||||
+ return this.scissors;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
public DamageSource fallingBlock(Entity attacker) {
|
|
||||||
return this.source(DamageTypes.FALLING_BLOCK, attacker);
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageTypes.java b/src/main/java/net/minecraft/world/damagesource/DamageTypes.java
|
|
||||||
index 0b80bf3e30a83c8c284d196980340542bfca3ded..7bbfa2f8ac29dd32b100d356b285b5e5bd6615fe 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageTypes.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageTypes.java
|
|
||||||
@@ -27,6 +27,7 @@ public interface DamageTypes {
|
|
||||||
ResourceKey<DamageType> SWEET_BERRY_BUSH = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("sweet_berry_bush"));
|
|
||||||
ResourceKey<DamageType> FREEZE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("freeze"));
|
|
||||||
ResourceKey<DamageType> STALAGMITE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("stalagmite"));
|
|
||||||
+ ResourceKey<DamageType> SCISSORS = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("scissors"));
|
|
||||||
ResourceKey<DamageType> FALLING_BLOCK = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("falling_block"));
|
|
||||||
ResourceKey<DamageType> FALLING_ANVIL = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("falling_anvil"));
|
|
||||||
ResourceKey<DamageType> FALLING_STALACTITE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("falling_stalactite"));
|
|
||||||
@@ -71,6 +72,7 @@ public interface DamageTypes {
|
|
||||||
damageTypeRegisterable.register(SWEET_BERRY_BUSH, new DamageType("sweetBerryBush", 0.1F, DamageEffects.POKING));
|
|
||||||
damageTypeRegisterable.register(FREEZE, new DamageType("freeze", 0.0F, DamageEffects.FREEZING));
|
|
||||||
damageTypeRegisterable.register(STALAGMITE, new DamageType("stalagmite", 0.0F));
|
|
||||||
+ damageTypeRegisterable.register(SCISSORS, new DamageType("scissors", DamageScaling.NEVER, 0.0F, DamageEffects.HURT, DeathMessageType.INTENTIONAL_GAME_DESIGN));
|
|
||||||
damageTypeRegisterable.register(FALLING_BLOCK, new DamageType("fallingBlock", 0.1F));
|
|
||||||
damageTypeRegisterable.register(FALLING_ANVIL, new DamageType("anvil", 0.1F));
|
|
||||||
damageTypeRegisterable.register(FALLING_STALACTITE, new DamageType("fallingStalactite", 0.1F));
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
||||||
index fb1555641047175060f381bf797c4a6fce75837a..debba52be7ba896f5a96a2ffa4e502101627a576 100644
|
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
||||||
@@ -1131,6 +1131,10 @@ public class CraftEventFactory {
|
|
||||||
cause = DamageCause.DRYOUT;
|
|
||||||
} else if (sourceType == DamageTypes.FREEZE) {
|
|
||||||
cause = DamageCause.FREEZE;
|
|
||||||
+ // Purpur start
|
|
||||||
+ } else if (sourceType == DamageTypes.SCISSORS) {
|
|
||||||
+ cause = DamageCause.SUICIDE;
|
|
||||||
+ // Purpur end
|
|
||||||
} else {
|
|
||||||
cause = DamageCause.CUSTOM;
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
index 5b0625955e2a65f689c8a128d73170bc1f0c8025..c8097ec7887ac8e689b6843d9ff7744d6a453478 100644
|
index 5b0625955e2a65f689c8a128d73170bc1f0c8025..c8097ec7887ac8e689b6843d9ff7744d6a453478 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
@@ -127,7 +61,7 @@ index 5b0625955e2a65f689c8a128d73170bc1f0c8025..c8097ec7887ac8e689b6843d9ff7744d
|
|||||||
|
|
||||||
public static String serverModName = "Purpur";
|
public static String serverModName = "Purpur";
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
index d4c78ebd34109b8364e51089ed383ee06f18e48a..0eef3049df089ec17c213e4a4ab4c23815775dc4 100644
|
index d7a87f582ba3f9f1af1605313208212011c53c58..8d0e2bb1f4e58339768cb1dad878142e33ad84bd 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
@@ -199,6 +199,8 @@ public class PurpurWorldConfig {
|
@@ -199,6 +199,8 @@ public class PurpurWorldConfig {
|
||||||
|
|||||||
@@ -4,59 +4,8 @@ Date: Wed, 8 Jun 2022 14:19:35 -0400
|
|||||||
Subject: [PATCH] Stonecutter damage
|
Subject: [PATCH] Stonecutter damage
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
|
||||||
index dc8d1a5edd415724b1b5417a1bb3cca13c47d28f..c30e9bd1bccfe008df354678db7816ba450a4b24 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
|
||||||
@@ -40,6 +40,7 @@ public class DamageSources {
|
|
||||||
private final DamageSource freeze;
|
|
||||||
private final DamageSource stalagmite;
|
|
||||||
private final DamageSource scissors;
|
|
||||||
+ private final DamageSource stonecutter; // Purpur
|
|
||||||
// CraftBukkit start
|
|
||||||
public final DamageSource melting;
|
|
||||||
public final DamageSource poison;
|
|
||||||
@@ -71,6 +72,7 @@ public class DamageSources {
|
|
||||||
this.freeze = this.source(DamageTypes.FREEZE);
|
|
||||||
this.stalagmite = this.source(DamageTypes.STALAGMITE);
|
|
||||||
this.scissors = this.source(DamageTypes.SCISSORS);
|
|
||||||
+ this.stonecutter = this.source(DamageTypes.STONE_CUTTER);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DamageSource source(ResourceKey<DamageType> key) {
|
|
||||||
@@ -173,6 +175,10 @@ public class DamageSources {
|
|
||||||
return this.scissors;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public DamageSource stonecutter() {
|
|
||||||
+ return this.stonecutter;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
public DamageSource fallingBlock(Entity attacker) {
|
|
||||||
return this.source(DamageTypes.FALLING_BLOCK, attacker);
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageTypes.java b/src/main/java/net/minecraft/world/damagesource/DamageTypes.java
|
|
||||||
index 7bbfa2f8ac29dd32b100d356b285b5e5bd6615fe..ebe9dd5533710cc9f74801c13c71f8a1c5804c94 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageTypes.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageTypes.java
|
|
||||||
@@ -28,6 +28,7 @@ public interface DamageTypes {
|
|
||||||
ResourceKey<DamageType> FREEZE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("freeze"));
|
|
||||||
ResourceKey<DamageType> STALAGMITE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("stalagmite"));
|
|
||||||
ResourceKey<DamageType> SCISSORS = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("scissors"));
|
|
||||||
+ ResourceKey<DamageType> STONE_CUTTER = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("stone_cutter"));
|
|
||||||
ResourceKey<DamageType> FALLING_BLOCK = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("falling_block"));
|
|
||||||
ResourceKey<DamageType> FALLING_ANVIL = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("falling_anvil"));
|
|
||||||
ResourceKey<DamageType> FALLING_STALACTITE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("falling_stalactite"));
|
|
||||||
@@ -73,6 +74,7 @@ public interface DamageTypes {
|
|
||||||
damageTypeRegisterable.register(FREEZE, new DamageType("freeze", 0.0F, DamageEffects.FREEZING));
|
|
||||||
damageTypeRegisterable.register(STALAGMITE, new DamageType("stalagmite", 0.0F));
|
|
||||||
damageTypeRegisterable.register(SCISSORS, new DamageType("scissors", DamageScaling.NEVER, 0.0F, DamageEffects.HURT, DeathMessageType.INTENTIONAL_GAME_DESIGN));
|
|
||||||
+ damageTypeRegisterable.register(STONE_CUTTER, new DamageType("stone_cutter", DamageScaling.NEVER, 0.0F, DamageEffects.HURT, DeathMessageType.INTENTIONAL_GAME_DESIGN));
|
|
||||||
damageTypeRegisterable.register(FALLING_BLOCK, new DamageType("fallingBlock", 0.1F));
|
|
||||||
damageTypeRegisterable.register(FALLING_ANVIL, new DamageType("anvil", 0.1F));
|
|
||||||
damageTypeRegisterable.register(FALLING_STALACTITE, new DamageType("fallingStalactite", 0.1F));
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java b/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java b/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java
|
||||||
index 0a95842c53a9d0286c57bcb42db97e468e30fb7d..0882e67c5cf876e0fc58a4ca4accb4be40418983 100644
|
index 0a95842c53a9d0286c57bcb42db97e468e30fb7d..e2d42e7947a237dd060ec1b9b63ac6ca4f37241a 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/StonecutterBlock.java
|
||||||
@@ -92,4 +92,16 @@ public class StonecutterBlock extends Block {
|
@@ -92,4 +92,16 @@ public class StonecutterBlock extends Block {
|
||||||
@@ -69,7 +18,7 @@ index 0a95842c53a9d0286c57bcb42db97e468e30fb7d..0882e67c5cf876e0fc58a4ca4accb4be
|
|||||||
+ public void stepOn(Level level, BlockPos pos, BlockState state, net.minecraft.world.entity.Entity entity) {
|
+ public void stepOn(Level level, BlockPos pos, BlockState state, net.minecraft.world.entity.Entity entity) {
|
||||||
+ if (level.purpurConfig.stonecutterDamage > 0.0F && entity instanceof net.minecraft.world.entity.LivingEntity) {
|
+ if (level.purpurConfig.stonecutterDamage > 0.0F && entity instanceof net.minecraft.world.entity.LivingEntity) {
|
||||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = level.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
|
+ org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = level.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
|
||||||
+ entity.hurt(entity.damageSources().stonecutter(), level.purpurConfig.stonecutterDamage);
|
+ entity.hurt(entity.damageSources().magic(), level.purpurConfig.stonecutterDamage);
|
||||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null;
|
+ org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null;
|
||||||
+ }
|
+ }
|
||||||
+ super.stepOn(level, pos, state, entity);
|
+ super.stepOn(level, pos, state, entity);
|
||||||
@@ -98,21 +47,6 @@ index 17a7fab20b4174273354fdc2fc700b7f2d669a98..a7578e112e80ed2585a7eb4fff9542f6
|
|||||||
if (blockState.is(Blocks.HONEY_BLOCK)) {
|
if (blockState.is(Blocks.HONEY_BLOCK)) {
|
||||||
return BlockPathTypes.STICKY_HONEY;
|
return BlockPathTypes.STICKY_HONEY;
|
||||||
} else if (blockState.is(Blocks.COCOA)) {
|
} else if (blockState.is(Blocks.COCOA)) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
||||||
index debba52be7ba896f5a96a2ffa4e502101627a576..a20866374badffdda0ea10f83fb74347240fee19 100644
|
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
||||||
@@ -1057,6 +1057,10 @@ public class CraftEventFactory {
|
|
||||||
cause = DamageCause.MAGIC;
|
|
||||||
} else if (sourceType == DamageTypes.IN_FIRE) {
|
|
||||||
cause = DamageCause.FIRE;
|
|
||||||
+ // Purpur start
|
|
||||||
+ } else if (sourceType == DamageTypes.STONE_CUTTER) {
|
|
||||||
+ cause = DamageCause.CONTACT;
|
|
||||||
+ // Purpur end
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.getMsgId()));
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
index 636c032127c2026509764745f805ae0693e4a983..3734f6279005872eac6697e6e22c3a2e61eabc22 100644
|
index 636c032127c2026509764745f805ae0693e4a983..3734f6279005872eac6697e6e22c3a2e61eabc22 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
|
|||||||
Reference in New Issue
Block a user