1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Did the requested changes.

This commit is contained in:
LinoxGH 2020-06-24 01:06:48 +03:00
parent 9205b143ed
commit 3278457441
3 changed files with 18 additions and 17 deletions

View File

@ -1,11 +1,10 @@
package io.github.thebusybiscuit.slimefun4.implementation.items.magical; package io.github.thebusybiscuit.slimefun4.implementation.items.magical;
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Villager; import org.bukkit.entity.Villager;
import org.bukkit.entity.ZombieVillager; import org.bukkit.entity.ZombieVillager;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion; import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion;
@ -19,7 +18,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
/** /**
* This {@link SlimefunItem} allows you to convert any {@link ZombieVillager} to * This {@link SlimefunItem} allows you to convert any {@link ZombieVillager} to
* their {@link Villager} variant. * their {@link Villager} variant. It is also one of the very few utilisations of {@link EntityInteractHandler}.
* *
* @author Linox * @author Linox
* *
@ -34,20 +33,13 @@ public class MagicPills extends SimpleSlimefunItem<EntityInteractHandler> {
@Override @Override
public EntityInteractHandler getItemHandler() { public EntityInteractHandler getItemHandler() {
return (e, item) -> { return (p, entity, item, offhand) -> {
if (e.getRightClicked().getType() == EntityType.ZOMBIE_VILLAGER) { if (entity.getType() == EntityType.ZOMBIE_VILLAGER) {
Player p = e.getPlayer();
item.setAmount(item.getAmount() - 1);
if (e.getHand() == EquipmentSlot.OFF_HAND) {
p.getInventory().setItemInOffHand(item);
} else {
p.getInventory().setItemInMainHand(item);
}
ItemUtils.consumeItem(item, false);
p.playSound(p.getLocation(), Sound.ENTITY_ZOMBIE_VILLAGER_CONVERTED, 1, 1); p.playSound(p.getLocation(), Sound.ENTITY_ZOMBIE_VILLAGER_CONVERTED, 1, 1);
ZombieVillager zombieVillager = (ZombieVillager) e.getRightClicked(); ZombieVillager zombieVillager = (ZombieVillager) entity;
zombieVillager.setConversionTime(1); zombieVillager.setConversionTime(1);
if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_15)) { if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_15)) {
zombieVillager.setConversionPlayer(p); zombieVillager.setConversionPlayer(p);

View File

@ -3,6 +3,7 @@ package me.mrCookieSlime.Slimefun.Objects.handlers;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerInteractAtEntityEvent; import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
@ -15,6 +16,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
* *
* @see ItemHandler * @see ItemHandler
* @see SimpleSlimefunItem * @see SimpleSlimefunItem
* @see PlayerInteractAtEntityEvent
* *
*/ */
@FunctionalInterface @FunctionalInterface
@ -24,10 +26,16 @@ public interface EntityInteractHandler extends ItemHandler {
* This function is triggered when a {@link Player} right clicks with the assigned {@link SlimefunItem} * This function is triggered when a {@link Player} right clicks with the assigned {@link SlimefunItem}
* in his hand. * in his hand.
* *
* @param e * @param p
* The {@link PlayerInteractAtEntityEvent} that was triggered * The {@link Player} that right clicked
* @param entity
* The {@link Entity} that was right clicked on
* @param item
* The {@link ItemStack} that was held and used while triggering
* @param offHand
* <code>true</code> if the {@link EquipmentSlot} is off hand
*/ */
void onInteract(PlayerInteractAtEntityEvent e, ItemStack item); void onInteract(Player p, Entity entity, ItemStack item, boolean offHand);
@Override @Override
default Class<? extends ItemHandler> getIdentifier() { default Class<? extends ItemHandler> getIdentifier() {

View File

@ -233,3 +233,4 @@ slimefun:
tree_growth_accelerator: Faster Trees tree_growth_accelerator: Faster Trees
industrial_miner: Industrial Mining industrial_miner: Industrial Mining
advanced_industrial_miner: Better Mining advanced_industrial_miner: Better Mining
magic_pills: De-Zombification