SPIGOT-1505: PlayerItemMendEvent
Dieser Commit ist enthalten in:
Ursprung
19ed80cef7
Commit
bdb8822625
@ -46,8 +46,22 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ);
|
this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ);
|
||||||
@@ -153,7 +172,7 @@
|
@@ -148,12 +167,18 @@
|
||||||
}
|
if (!itemstack.isEmpty() && itemstack.h()) {
|
||||||
|
int i = Math.min(this.d(this.value), itemstack.i());
|
||||||
|
|
||||||
|
- this.value -= this.c(i);
|
||||||
|
- itemstack.setData(itemstack.i() - i);
|
||||||
|
- }
|
||||||
|
+ // CraftBukkit start
|
||||||
|
+ org.bukkit.event.player.PlayerItemMendEvent event = CraftEventFactory.callPlayerItemMendEvent(entityhuman, this, itemstack, i);
|
||||||
|
+ i = event.getRepairAmount();
|
||||||
|
+ if (!event.isCancelled()) {
|
||||||
|
+ this.value -= this.c(i);
|
||||||
|
+ itemstack.setData(itemstack.i() - i);
|
||||||
|
+ }
|
||||||
|
+ // CraftBukkit end
|
||||||
|
+ }
|
||||||
|
|
||||||
if (this.value > 0) {
|
if (this.value > 0) {
|
||||||
- entityhuman.giveExp(this.value);
|
- entityhuman.giveExp(this.value);
|
||||||
@ -55,7 +69,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.die();
|
this.die();
|
||||||
@@ -175,6 +194,24 @@
|
@@ -175,6 +200,24 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getOrbValue(int i) {
|
public static int getOrbValue(int i) {
|
||||||
|
@ -36,6 +36,7 @@ import org.bukkit.entity.AreaEffectCloud;
|
|||||||
import org.bukkit.entity.Arrow;
|
import org.bukkit.entity.Arrow;
|
||||||
import org.bukkit.entity.Creeper;
|
import org.bukkit.entity.Creeper;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.ExperienceOrb;
|
||||||
import org.bukkit.entity.Firework;
|
import org.bukkit.entity.Firework;
|
||||||
import org.bukkit.entity.LightningStrike;
|
import org.bukkit.entity.LightningStrike;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
@ -647,6 +648,14 @@ public class CraftEventFactory {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static PlayerItemMendEvent callPlayerItemMendEvent(EntityHuman entity, EntityExperienceOrb orb, net.minecraft.server.ItemStack nmsMendedItem, int repairAmount) {
|
||||||
|
Player player = (Player) entity.getBukkitEntity();
|
||||||
|
org.bukkit.inventory.ItemStack bukkitStack = CraftItemStack.asCraftMirror(nmsMendedItem);
|
||||||
|
PlayerItemMendEvent event = new PlayerItemMendEvent(player, bukkitStack, (ExperienceOrb) orb.getBukkitEntity(), repairAmount);
|
||||||
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean handleBlockGrowEvent(World world, int x, int y, int z, net.minecraft.server.Block type, int data) {
|
public static boolean handleBlockGrowEvent(World world, int x, int y, int z, net.minecraft.server.Block type, int data) {
|
||||||
Block block = world.getWorld().getBlockAt(x, y, z);
|
Block block = world.getWorld().getBlockAt(x, y, z);
|
||||||
CraftBlockState state = (CraftBlockState) block.getState();
|
CraftBlockState state = (CraftBlockState) block.getState();
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren