More work
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
--- a/net/minecraft/server/rcon/RconConsoleSource.java
|
||||
+++ b/net/minecraft/server/rcon/RconConsoleSource.java
|
||||
@@ -13,8 +_,13 @@
|
||||
private static final Component RCON_COMPONENT = Component.literal("Rcon");
|
||||
private final StringBuffer buffer = new StringBuffer();
|
||||
private final MinecraftServer server;
|
||||
+ // CraftBukkit start
|
||||
+ public final java.net.SocketAddress socketAddress;
|
||||
+ private final org.bukkit.craftbukkit.command.CraftRemoteConsoleCommandSender remoteConsole = new org.bukkit.craftbukkit.command.CraftRemoteConsoleCommandSender(this);
|
||||
|
||||
- public RconConsoleSource(MinecraftServer server) {
|
||||
+ public RconConsoleSource(MinecraftServer server, java.net.SocketAddress socketAddress) {
|
||||
+ this.socketAddress = socketAddress;
|
||||
+ // CraftBukkit end
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
@@ -32,6 +_,17 @@
|
||||
this, Vec3.atLowerCornerOf(serverLevel.getSharedSpawnPos()), Vec2.ZERO, serverLevel, 4, "Rcon", RCON_COMPONENT, this.server, null
|
||||
);
|
||||
}
|
||||
+
|
||||
+ // CraftBukkit start - Send a String
|
||||
+ public void sendMessage(String message) {
|
||||
+ this.buffer.append(message);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public org.bukkit.command.CommandSender getBukkitSender(CommandSourceStack wrapper) {
|
||||
+ return this.remoteConsole;
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
|
||||
@Override
|
||||
public void sendSystemMessage(Component component) {
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/item/enchantment/effects/ApplyMobEffect.java
|
||||
+++ b/net/minecraft/world/item/enchantment/effects/ApplyMobEffect.java
|
||||
@@ -44,7 +_,7 @@
|
||||
int max = Math.max(
|
||||
0, Math.round(Mth.randomBetween(random, this.minAmplifier.calculate(enchantmentLevel), this.maxAmplifier.calculate(enchantmentLevel)))
|
||||
);
|
||||
- livingEntity.addEffect(new MobEffectInstance(randomElement.get(), rounded, max));
|
||||
+ livingEntity.addEffect(new MobEffectInstance(randomElement.get(), rounded, max), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/world/item/enchantment/effects/ChangeItemDamage.java
|
||||
+++ b/net/minecraft/world/item/enchantment/effects/ChangeItemDamage.java
|
||||
@@ -21,9 +_,9 @@
|
||||
public void apply(ServerLevel level, int enchantmentLevel, EnchantedItemInUse item, Entity entity, Vec3 origin) {
|
||||
ItemStack itemStack = item.itemStack();
|
||||
if (itemStack.has(DataComponents.MAX_DAMAGE) && itemStack.has(DataComponents.DAMAGE)) {
|
||||
- ServerPlayer serverPlayer1 = item.owner() instanceof ServerPlayer serverPlayer ? serverPlayer : null;
|
||||
+ //ServerPlayer serverPlayer1 = item.owner() instanceof ServerPlayer serverPlayer ? serverPlayer : null; // Paper - EntityDamageItemEvent - always pass in entity
|
||||
int i = (int)this.amount.calculate(enchantmentLevel);
|
||||
- itemStack.hurtAndBreak(i, level, serverPlayer1, item.onBreak());
|
||||
+ itemStack.hurtAndBreak(i, level, item.owner(), item.onBreak()); // Paper - EntityDamageItemEvent - always pass in entity
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
--- a/net/minecraft/world/item/enchantment/effects/Ignite.java
|
||||
+++ b/net/minecraft/world/item/enchantment/effects/Ignite.java
|
||||
@@ -15,7 +_,21 @@
|
||||
|
||||
@Override
|
||||
public void apply(ServerLevel level, int enchantmentLevel, EnchantedItemInUse item, Entity entity, Vec3 origin) {
|
||||
- entity.igniteForSeconds(this.duration.calculate(enchantmentLevel));
|
||||
+ // CraftBukkit start - Call a combust event when somebody hits with a fire enchanted item
|
||||
+ org.bukkit.event.entity.EntityCombustEvent entityCombustEvent;
|
||||
+ if (item.owner() != null) {
|
||||
+ entityCombustEvent = new org.bukkit.event.entity.EntityCombustByEntityEvent(item.owner().getBukkitEntity(), entity.getBukkitEntity(), this.duration.calculate(enchantmentLevel));
|
||||
+ } else {
|
||||
+ entityCombustEvent = new org.bukkit.event.entity.EntityCombustEvent(entity.getBukkitEntity(), this.duration.calculate(enchantmentLevel));
|
||||
+ }
|
||||
+
|
||||
+ org.bukkit.Bukkit.getPluginManager().callEvent(entityCombustEvent);
|
||||
+ if (entityCombustEvent.isCancelled()) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ entity.igniteForSeconds(entityCombustEvent.getDuration(), false);
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -0,0 +1,13 @@
|
||||
--- a/net/minecraft/world/item/enchantment/effects/ReplaceBlock.java
|
||||
+++ b/net/minecraft/world/item/enchantment/effects/ReplaceBlock.java
|
||||
@@ -29,8 +_,9 @@
|
||||
@Override
|
||||
public void apply(ServerLevel level, int enchantmentLevel, EnchantedItemInUse item, Entity entity, Vec3 origin) {
|
||||
BlockPos blockPos = BlockPos.containing(origin).offset(this.offset);
|
||||
+ // }).orElse(true) &&
|
||||
if (this.predicate.map(blockPredicate -> blockPredicate.test(level, blockPos)).orElse(true)
|
||||
- && level.setBlockAndUpdate(blockPos, this.blockState.getState(entity.getRandom(), blockPos))) {
|
||||
+ && org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(level, blockPos, this.blockState.getState(entity.getRandom(), blockPos), entity)) { // CraftBukkit - Call EntityBlockFormEvent
|
||||
this.triggerGameEvent.ifPresent(holder -> level.gameEvent(entity, (Holder<GameEvent>)holder, blockPos));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/item/enchantment/effects/ReplaceDisk.java
|
||||
+++ b/net/minecraft/world/item/enchantment/effects/ReplaceDisk.java
|
||||
@@ -47,7 +_,7 @@
|
||||
for (BlockPos blockPos1 : BlockPos.betweenClosed(blockPos.offset(-i, 0, -i), blockPos.offset(i, Math.min(i1 - 1, 0), i))) {
|
||||
if (blockPos1.distToCenterSqr(origin.x(), blockPos1.getY() + 0.5, origin.z()) < Mth.square(i)
|
||||
&& this.predicate.map(predicate -> predicate.test(level, blockPos1)).orElse(true)
|
||||
- && level.setBlockAndUpdate(blockPos1, this.blockState.getState(random, blockPos1))) {
|
||||
+ && org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(level, blockPos1, this.blockState.getState(random, blockPos1), entity)) { // CraftBukkit - Call EntityBlockFormEvent for Frost Walker
|
||||
this.triggerGameEvent.ifPresent(event -> level.gameEvent(entity, (Holder<GameEvent>)event, blockPos1));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
--- a/net/minecraft/world/item/enchantment/effects/SummonEntityEffect.java
|
||||
+++ b/net/minecraft/world/item/enchantment/effects/SummonEntityEffect.java
|
||||
@@ -34,11 +_,16 @@
|
||||
if (Level.isInSpawnableBounds(blockPos)) {
|
||||
Optional<Holder<EntityType<?>>> randomElement = this.entityTypes().getRandomElement(level.getRandom());
|
||||
if (!randomElement.isEmpty()) {
|
||||
- Entity entity1 = randomElement.get().value().spawn(level, blockPos, EntitySpawnReason.TRIGGERED);
|
||||
+ Entity entity1 = randomElement.get().value().create(level, null, blockPos, EntitySpawnReason.TRIGGERED, false, false); // CraftBukkit
|
||||
if (entity1 != null) {
|
||||
if (entity1 instanceof LightningBolt lightningBolt && item.owner() instanceof ServerPlayer serverPlayer) {
|
||||
lightningBolt.setCause(serverPlayer);
|
||||
}
|
||||
+ // CraftBukkit start
|
||||
+ level.strikeLightning(entity1, (item.itemStack().getItem() == net.minecraft.world.item.Items.TRIDENT) ? org.bukkit.event.weather.LightningStrikeEvent.Cause.TRIDENT : org.bukkit.event.weather.LightningStrikeEvent.Cause.ENCHANTMENT);
|
||||
+ } else {
|
||||
+ level.addFreshEntityWithPassengers(entity1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.ENCHANTMENT);
|
||||
+ // CraftBukkit end
|
||||
|
||||
if (this.joinTeam && entity.getTeam() != null) {
|
||||
level.getScoreboard().addPlayerToTeam(entity1.getScoreboardName(), entity.getTeam());
|
||||
Reference in New Issue
Block a user