#1123: Add PrepareGrindstoneEvent

This commit is contained in:
FreeSoccerHDX 2022-12-13 19:28:47 +11:00 committed by md_5
parent b402824ea7
commit ab1586c2fb
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11
2 changed files with 51 additions and 0 deletions

View File

@ -53,6 +53,49 @@
}
@Override
@@ -145,7 +175,7 @@
boolean flag2 = !itemstack.isEmpty() && !itemstack.is(Items.ENCHANTED_BOOK) && !itemstack.isEnchanted() || !itemstack1.isEmpty() && !itemstack1.is(Items.ENCHANTED_BOOK) && !itemstack1.isEnchanted();
if (itemstack.getCount() > 1 || itemstack1.getCount() > 1 || !flag1 && flag2) {
- this.resultSlots.setItem(0, ItemStack.EMPTY);
+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareGrindstoneEvent(getBukkitView(), ItemStack.EMPTY); // CraftBukkit
this.broadcastChanges();
return;
}
@@ -156,7 +186,7 @@
if (flag1) {
if (!itemstack.is(itemstack1.getItem())) {
- this.resultSlots.setItem(0, ItemStack.EMPTY);
+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareGrindstoneEvent(getBukkitView(), ItemStack.EMPTY); // CraftBukkit
this.broadcastChanges();
return;
}
@@ -170,7 +200,7 @@
itemstack2 = this.mergeEnchants(itemstack, itemstack1);
if (!itemstack2.isDamageableItem()) {
if (!ItemStack.matches(itemstack, itemstack1)) {
- this.resultSlots.setItem(0, ItemStack.EMPTY);
+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareGrindstoneEvent(getBukkitView(), ItemStack.EMPTY); // CraftBukkit
this.broadcastChanges();
return;
}
@@ -183,12 +213,12 @@
i = flag3 ? itemstack.getDamageValue() : itemstack1.getDamageValue();
itemstack2 = flag3 ? itemstack : itemstack1;
}
-
- this.resultSlots.setItem(0, this.removeNonCurses(itemstack2, i, b0));
+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareGrindstoneEvent(getBukkitView(), this.removeNonCurses(itemstack2, i, b0)); // CraftBukkit
} else {
- this.resultSlots.setItem(0, ItemStack.EMPTY);
+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareGrindstoneEvent(getBukkitView(), ItemStack.EMPTY); // CraftBukkit
}
+ sendAllDataToRemote(); // CraftBukkit - SPIGOT-6686: Always send completed inventory to stay in sync with client
this.broadcastChanges();
}
@@ -251,6 +281,7 @@
@Override

View File

@ -197,6 +197,7 @@ import org.bukkit.event.entity.VillagerCareerChangeEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.event.inventory.PrepareAnvilEvent;
import org.bukkit.event.inventory.PrepareGrindstoneEvent;
import org.bukkit.event.inventory.PrepareItemCraftEvent;
import org.bukkit.event.inventory.PrepareSmithingEvent;
import org.bukkit.event.inventory.TradeSelectEvent;
@ -1473,6 +1474,13 @@ public class CraftEventFactory {
return event;
}
public static PrepareGrindstoneEvent callPrepareGrindstoneEvent(InventoryView view, ItemStack item) {
PrepareGrindstoneEvent event = new PrepareGrindstoneEvent(view, CraftItemStack.asCraftMirror(item).clone());
event.getView().getPlayer().getServer().getPluginManager().callEvent(event);
event.getInventory().setItem(2, event.getResult());
return event;
}
public static PrepareSmithingEvent callPrepareSmithingEvent(InventoryView view, ItemStack item) {
PrepareSmithingEvent event = new PrepareSmithingEvent(view, CraftItemStack.asCraftMirror(item).clone());
event.getView().getPlayer().getServer().getPluginManager().callEvent(event);