From 6eda87a7f540b402fa8956cd466a2b4ac91bd893 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Tue, 28 Jan 2025 18:47:05 +0100 Subject: [PATCH] Prevent duplicate raider in RaidSpawnWaveEvent list --- .../net/minecraft/world/entity/raid/Raid.java.patch | 2 +- .../bukkit/craftbukkit/event/CraftEventFactory.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/world/entity/raid/Raid.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/raid/Raid.java.patch index f5c2c2d98310d..0f2847caa070a 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/raid/Raid.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/raid/Raid.java.patch @@ -126,7 +126,7 @@ this.joinRaid(i, raider1, pos, false); raider1.moveTo(pos, 0.0F, 0.0F); raider1.startRiding(raider); -+ raiders.add(raider); // CraftBukkit ++ raiders.add(raider1); // CraftBukkit } } } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index d7a52220e9525..23aeb7bc8d8f2 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2016,13 +2016,13 @@ public static void callRaidStopEvent(Raid raid, RaidStopEvent.Reason reason) { } public static void callRaidSpawnWaveEvent(Raid raid, net.minecraft.world.entity.raid.Raider leader, List raiders) { - Raider craftLeader = (CraftRaider) leader.getBukkitEntity(); - List craftRaiders = new ArrayList<>(); - for (net.minecraft.world.entity.raid.Raider entityRaider : raiders) { - craftRaiders.add((Raider) entityRaider.getBukkitEntity()); + Raider bukkitLeader = (Raider) leader.getBukkitEntity(); + List bukkitRaiders = new ArrayList<>(raiders.size()); + for (net.minecraft.world.entity.raid.Raider raider : raiders) { + bukkitRaiders.add((Raider) raider.getBukkitEntity()); } - RaidSpawnWaveEvent event = new RaidSpawnWaveEvent(new CraftRaid(raid), raid.getLevel().getWorld(), craftLeader, craftRaiders); - Bukkit.getPluginManager().callEvent(event); + RaidSpawnWaveEvent event = new RaidSpawnWaveEvent(new CraftRaid(raid), raid.getLevel().getWorld(), bukkitLeader, bukkitRaiders); + event.callEvent(); } public static LootGenerateEvent callLootGenerateEvent(Container inventory, LootTable lootTable, LootContext lootInfo, List loot, boolean plugin) {