Commits
1 1 | --- a/net/minecraft/server/TileEntityBrewingStand.java |
2 2 | +++ b/net/minecraft/server/TileEntityBrewingStand.java |
3 - | |
3 + | |
4 4 | import java.util.Arrays; |
5 5 | import java.util.Iterator; |
6 6 | |
7 7 | +// CraftBukkit start |
8 8 | +import java.util.List; |
9 9 | +import org.bukkit.craftbukkit.entity.CraftHumanEntity; |
10 + | +import org.bukkit.craftbukkit.inventory.CraftItemStack; |
10 11 | +import org.bukkit.entity.HumanEntity; |
11 12 | +import org.bukkit.event.inventory.BrewEvent; |
13 + | +import org.bukkit.event.inventory.BrewingStandFuelEvent; |
12 14 | +// CraftBukkit end |
13 15 | + |
14 16 | public class TileEntityBrewingStand extends TileEntityContainer implements ITickable, IWorldInventory { |
15 - | |
17 + | ​ |
16 18 | private static final int[] a = new int[] { 3}; |
17 - | |
19 + | |
18 20 | private Item k; |
19 21 | private String l; |
20 22 | private int m; |
21 23 | + // CraftBukkit start - add fields and methods |
22 24 | + private int lastTick = MinecraftServer.currentTick; |
23 25 | + public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>(); |
24 26 | + private int maxStack = 64; |
25 27 | + |
26 28 | + public void onOpen(CraftHumanEntity who) { |
27 29 | + transaction.add(who); |
39 41 | + return this.items; |
40 42 | + } |
41 43 | + |
42 44 | + public void setMaxStackSize(int size) { |
43 45 | + maxStack = size; |
44 46 | + } |
45 47 | + // CraftBukkit end |
46 48 | |
47 49 | public TileEntityBrewingStand() { |
48 50 | this.items = NonNullList.a(5, ItemStack.a); |
49 - | |
51 + | |
52 + | ItemStack itemstack = (ItemStack) this.items.get(4); |
53 + | |
54 + | if (this.m <= 0 && itemstack.getItem() == Items.BLAZE_POWDER) { |
55 + | - this.m = 20; |
56 + | - itemstack.subtract(1); |
57 + | + // CraftBukkit start |
58 + | + BrewingStandFuelEvent event = new BrewingStandFuelEvent(world.getWorld().getBlockAt(position.getX(), position.getY(), position.getZ()), 20, CraftItemStack.asBukkitCopy(itemstack)); |
59 + | + org.bukkit.Bukkit.getPluginManager().callEvent(event); |
60 + | + if (event.isCancelled()) { |
61 + | + return; |
62 + | + } |
63 + | + this.m = event.getFuelPower(); // PAIL fuelLevel |
64 + | + if (event.isConsuming()) { |
65 + | + itemstack.subtract(1); |
66 + | + } |
67 + | + // CraftBukkit end |
68 + | this.update(); |
69 + | } |
70 + | |
71 + | |
50 72 | boolean flag1 = this.brewTime > 0; |
51 73 | ItemStack itemstack1 = (ItemStack) this.items.get(3); |
52 74 | |
53 75 | + // CraftBukkit start - Use wall time instead of ticks for brewing |
54 76 | + int elapsedTicks = MinecraftServer.currentTick - this.lastTick; |
55 77 | + this.lastTick = MinecraftServer.currentTick; |
56 78 | + |
57 79 | if (flag1) { |
58 80 | - --this.brewTime; |
59 81 | - boolean flag2 = this.brewTime == 0; |
60 82 | + this.brewTime -= elapsedTicks; |
61 83 | + boolean flag2 = this.brewTime <= 0; // == -> <= |
62 84 | + // CraftBukkit end |
63 85 | |
64 86 | if (flag2 && flag) { |
65 87 | this.p(); |
66 - | |
88 + | |
67 89 | |
68 90 | private void p() { |
69 91 | ItemStack itemstack = (ItemStack) this.items.get(3); |
70 92 | + // CraftBukkit start |
71 93 | + if (getOwner() != null) { |
72 - | + BrewEvent event = new BrewEvent(world.getWorld().getBlockAt(position.getX(), position.getY(), position.getZ()), (org.bukkit.inventory.BrewerInventory) this.getOwner().getInventory()); |
94 + | + BrewEvent event = new BrewEvent(world.getWorld().getBlockAt(position.getX(), position.getY(), position.getZ()), (org.bukkit.inventory.BrewerInventory) this.getOwner().getInventory(), m); |
73 95 | + org.bukkit.Bukkit.getPluginManager().callEvent(event); |
74 96 | + if (event.isCancelled()) { |
75 97 | + return; |
76 98 | + } |
77 99 | + } |
78 100 | + // CraftBukkit end |
79 101 | |
80 102 | for (int i = 0; i < 3; ++i) { |
81 103 | this.items.set(i, PotionBrewer.d(itemstack, (ItemStack) this.items.get(i))); |
82 - | |
104 + | |
83 105 | } |
84 106 | |
85 107 | public int getMaxStackSize() { |
86 108 | - return 64; |
87 109 | + return this.maxStack; // CraftBukkit |
88 110 | } |
89 111 | |
90 112 | public boolean a(EntityHuman entityhuman) { |