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:
parent
9205b143ed
commit
3278457441
@ -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);
|
||||||
|
@ -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() {
|
||||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user