Change ender elf effects on hunger
This commit is contained in:
@@ -2,9 +2,11 @@ package net.babamod.mineclass.classes;
|
|||||||
|
|
||||||
import net.babamod.mineclass.utils.Pair;
|
import net.babamod.mineclass.utils.Pair;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -45,7 +47,6 @@ public class EnderElfClass extends MineClassImpl {
|
|||||||
private static final Map<PotionEffectType, Integer> potionEffects =
|
private static final Map<PotionEffectType, Integer> potionEffects =
|
||||||
Stream.of(
|
Stream.of(
|
||||||
new Object[][] {
|
new Object[][] {
|
||||||
{PotionEffectType.HUNGER, 10},
|
|
||||||
{PotionEffectType.NIGHT_VISION, 1},
|
{PotionEffectType.NIGHT_VISION, 1},
|
||||||
{PotionEffectType.ABSORPTION, 1},
|
{PotionEffectType.ABSORPTION, 1},
|
||||||
})
|
})
|
||||||
@@ -77,6 +78,16 @@ public class EnderElfClass extends MineClassImpl {
|
|||||||
return "ender_elf";
|
return "ender_elf";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reapplyEffects(Player player) {
|
||||||
|
super.reapplyEffects(player);
|
||||||
|
if (player.getWorld().getEnvironment().equals(World.Environment.THE_END)) {
|
||||||
|
PotionEffect saturation =
|
||||||
|
new PotionEffect(PotionEffectType.SATURATION, Integer.MAX_VALUE, 9, false, false);
|
||||||
|
player.addPotionEffect(saturation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void giveItems(Player player) {
|
public void giveItems(Player player) {
|
||||||
if (!player.getInventory().contains(Material.ENDER_PEARL)) {
|
if (!player.getInventory().contains(Material.ENDER_PEARL)) {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ public abstract class MineClassImpl implements MineClass {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reapplyEffects(Player player) {
|
public void reapplyEffects(Player player) {
|
||||||
|
MineClassFactory.clearAllClassEffects(player);
|
||||||
getPotionEffects()
|
getPotionEffects()
|
||||||
.forEach(
|
.forEach(
|
||||||
(key, value) -> {
|
(key, value) -> {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import net.babamod.mineclass.Mineclass;
|
|||||||
import net.babamod.mineclass.classes.MineClass;
|
import net.babamod.mineclass.classes.MineClass;
|
||||||
import net.babamod.mineclass.classes.MineClassFactory;
|
import net.babamod.mineclass.classes.MineClassFactory;
|
||||||
import net.babamod.mineclass.utils.*;
|
import net.babamod.mineclass.utils.*;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.AbstractArrow;
|
import org.bukkit.entity.AbstractArrow;
|
||||||
@@ -11,12 +12,11 @@ import org.bukkit.entity.EnderPearl;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.Action;
|
|
||||||
import org.bukkit.event.block.BlockDropItemEvent;
|
import org.bukkit.event.block.BlockDropItemEvent;
|
||||||
import org.bukkit.event.entity.*;
|
import org.bukkit.event.entity.*;
|
||||||
import org.bukkit.event.inventory.InventoryAction;
|
import org.bukkit.event.inventory.InventoryAction;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||||
@@ -192,6 +192,12 @@ public class MineClassListeners implements Listener {
|
|||||||
if (AppliedStatus.getInstance().getStatus(player).equals("elf")) {
|
if (AppliedStatus.getInstance().getStatus(player).equals("elf")) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
if (AppliedStatus.getInstance().getStatus(player).equals("ender_elf")) {
|
||||||
|
int difference = player.getFoodLevel() - event.getFoodLevel();
|
||||||
|
if (difference > 0) {
|
||||||
|
event.setFoodLevel(player.getFoodLevel() - (difference * 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,6 +239,9 @@ public class MineClassListeners implements Listener {
|
|||||||
public void on(ProjectileHitEvent event) {
|
public void on(ProjectileHitEvent event) {
|
||||||
if (event.getEntity().getShooter() instanceof Player) {
|
if (event.getEntity().getShooter() instanceof Player) {
|
||||||
Player player = (Player) event.getEntity().getShooter();
|
Player player = (Player) event.getEntity().getShooter();
|
||||||
|
if (player.getGameMode().equals(GameMode.CREATIVE)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (AppliedStatus.getInstance().getStatus(player).equals("ender_elf")
|
if (AppliedStatus.getInstance().getStatus(player).equals("ender_elf")
|
||||||
&& event.getEntity() instanceof EnderPearl) {
|
&& event.getEntity() instanceof EnderPearl) {
|
||||||
ItemStack itemStack = new ItemStack(Material.ENDER_PEARL, 1);
|
ItemStack itemStack = new ItemStack(Material.ENDER_PEARL, 1);
|
||||||
@@ -241,4 +250,12 @@ public class MineClassListeners implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void on(PlayerChangedWorldEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
MineClassFactory.getInstance()
|
||||||
|
.getRightClass(player)
|
||||||
|
.ifPresent(mineClass -> mineClass.reapplyEffects(player));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user