Refactor code and give ender pearl to ender elf
This commit is contained in:
@@ -3,6 +3,7 @@ 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.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -91,4 +92,7 @@ public class DwarfClass extends MineClassImpl {
|
|||||||
public String getCode() {
|
public String getCode() {
|
||||||
return "dwarf";
|
return "dwarf";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void giveItems(Player player) {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ 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.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -70,4 +71,7 @@ public class ElfClass extends MineClassImpl {
|
|||||||
public String getCode() {
|
public String getCode() {
|
||||||
return "elf";
|
return "elf";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void giveItems(Player player) {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ 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.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -74,4 +76,13 @@ public class EnderElfClass extends MineClassImpl {
|
|||||||
public String getCode() {
|
public String getCode() {
|
||||||
return "ender_elf";
|
return "ender_elf";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void giveItems(Player player) {
|
||||||
|
if (!player.getInventory().contains(Material.ENDER_PEARL)) {
|
||||||
|
ItemStack itemStack = new ItemStack(Material.ENDER_PEARL, 1);
|
||||||
|
enchantItem(itemStack);
|
||||||
|
player.getInventory().addItem(itemStack);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ 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.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -109,4 +110,7 @@ public class FireDwarfClass extends MineClassImpl {
|
|||||||
public String getCode() {
|
public String getCode() {
|
||||||
return "fire_dwarf";
|
return "fire_dwarf";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void giveItems(Player player) {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,5 +27,7 @@ public interface MineClass {
|
|||||||
|
|
||||||
void enchantItem(ItemStack itemStack);
|
void enchantItem(ItemStack itemStack);
|
||||||
|
|
||||||
|
void giveItems(Player player);
|
||||||
|
|
||||||
String getCode();
|
String getCode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import java.util.*;
|
|||||||
public class MineClassFactory {
|
public class MineClassFactory {
|
||||||
/** Instance unique pré-initialisée */
|
/** Instance unique pré-initialisée */
|
||||||
private static MineClassFactory INSTANCE;
|
private static MineClassFactory INSTANCE;
|
||||||
|
|
||||||
private final Map<String, MineClass> availableClasses;
|
private final Map<String, MineClass> availableClasses;
|
||||||
|
|
||||||
/** Constructeur privé */
|
/** Constructeur privé */
|
||||||
@@ -30,19 +31,6 @@ public class MineClassFactory {
|
|||||||
return INSTANCE;
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized Set<String> getAvailableClassCodes() {
|
|
||||||
return availableClasses.keySet();
|
|
||||||
}
|
|
||||||
|
|
||||||
public synchronized Optional<MineClass> getRightClass(Player player) {
|
|
||||||
for (Map.Entry<String, MineClass> stringMineClassEntry : availableClasses.entrySet()) {
|
|
||||||
if (stringMineClassEntry.getValue().is(player)) {
|
|
||||||
return Optional.of(stringMineClassEntry.getValue());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Optional.empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isSoulBound(ItemStack itemStack) {
|
public static boolean isSoulBound(ItemStack itemStack) {
|
||||||
if (itemStack.getItemMeta() != null && itemStack.getItemMeta().getLore() != null) {
|
if (itemStack.getItemMeta() != null && itemStack.getItemMeta().getLore() != null) {
|
||||||
return itemStack.getItemMeta().getLore().contains("Soulbound");
|
return itemStack.getItemMeta().getLore().contains("Soulbound");
|
||||||
@@ -58,10 +46,6 @@ public class MineClassFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reapplyEffectsByCode(String code, Player player) {
|
|
||||||
availableClasses.get(code).reapplyEffects(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setUnbreakableAndSoulbound(ItemStack itemStack) {
|
public static void setUnbreakableAndSoulbound(ItemStack itemStack) {
|
||||||
if (itemStack.getItemMeta() != null) {
|
if (itemStack.getItemMeta() != null) {
|
||||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
@@ -70,4 +54,25 @@ public class MineClassFactory {
|
|||||||
itemStack.setItemMeta(itemMeta);
|
itemStack.setItemMeta(itemMeta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public synchronized Set<String> getAvailableClassCodes() {
|
||||||
|
return availableClasses.keySet();
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized Optional<MineClass> getRightClass(Player player) {
|
||||||
|
for (Map.Entry<String, MineClass> stringMineClassEntry : availableClasses.entrySet()) {
|
||||||
|
if (stringMineClassEntry.getValue().is(player)) {
|
||||||
|
return Optional.of(stringMineClassEntry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void reapplyEffectsByCode(String code, Player player) {
|
||||||
|
availableClasses.get(code).reapplyEffects(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void giveItemsForClassByCode(String code, Player player) {
|
||||||
|
availableClasses.get(code).giveItems(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ public class CommandClass implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
sender.sendMessage("You need to use this command with one of the suggested arguments (press space then tab to see suggested arguments).");
|
sender.sendMessage(
|
||||||
|
"You need to use this command with one of the suggested arguments (press space then tab to see suggested arguments).");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
@@ -20,6 +21,7 @@ public class CommandClass implements CommandExecutor {
|
|||||||
AppliedStatus.getInstance().setStatus(player.getName(), args[0]);
|
AppliedStatus.getInstance().setStatus(player.getName(), args[0]);
|
||||||
MineClassFactory.clearAllClassEffects(player);
|
MineClassFactory.clearAllClassEffects(player);
|
||||||
MineClassFactory.getInstance().reapplyEffectsByCode(args[0], player);
|
MineClassFactory.getInstance().reapplyEffectsByCode(args[0], player);
|
||||||
|
MineClassFactory.getInstance().giveItemsForClassByCode(args[0], player);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (args[0].equals("clear")) {
|
if (args[0].equals("clear")) {
|
||||||
@@ -29,10 +31,8 @@ public class CommandClass implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
if (args[0].equals("whoami")) {
|
if (args[0].equals("whoami")) {
|
||||||
String classCode = AppliedStatus.getInstance().getStatus(player.getName());
|
String classCode = AppliedStatus.getInstance().getStatus(player.getName());
|
||||||
if (!classCode.equals("none")) {
|
if (classCode != null && !classCode.equals("none")) {
|
||||||
player.sendMessage(
|
player.sendMessage(String.format("You are a %s.", classCode));
|
||||||
String.format(
|
|
||||||
"You are a %s.", classCode));
|
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage("You are a simple steve.");
|
player.sendMessage("You are a simple steve.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,13 +4,11 @@ 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.Bukkit;
|
|
||||||
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;
|
||||||
import org.bukkit.entity.EnderPearl;
|
import org.bukkit.entity.EnderPearl;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event;
|
|
||||||
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.Action;
|
||||||
|
|||||||
@@ -49,8 +49,6 @@ public class AppliedStatus implements Serializable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "AppliedStatus{" +
|
return "AppliedStatus{" + "appliedStatus=" + appliedStatus + '}';
|
||||||
"appliedStatus=" + appliedStatus +
|
|
||||||
'}';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class PlayerHitCounter {
|
|||||||
|
|
||||||
public synchronized void increaseHitCount(Player player) {
|
public synchronized void increaseHitCount(Player player) {
|
||||||
Integer counter = byPlayerCounter.getOrDefault(player.getName(), 0);
|
Integer counter = byPlayerCounter.getOrDefault(player.getName(), 0);
|
||||||
byPlayerCounter.put(player.getName(), counter+1);
|
byPlayerCounter.put(player.getName(), counter + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void resetHitCounter(Player player) {
|
public synchronized void resetHitCounter(Player player) {
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ public class SmeltingEngine {
|
|||||||
return INSTANCE;
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized Optional<ItemStack> smelt(Player player, Location location, ItemStack itemStack) {
|
public synchronized Optional<ItemStack> smelt(
|
||||||
|
Player player, Location location, ItemStack itemStack) {
|
||||||
Optional<ItemStack> result = Optional.empty();
|
Optional<ItemStack> result = Optional.empty();
|
||||||
Iterator<Recipe> iter = Bukkit.recipeIterator();
|
Iterator<Recipe> iter = Bukkit.recipeIterator();
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
@@ -54,7 +55,9 @@ public class SmeltingEngine {
|
|||||||
player.getWorld().spawn(location, ExperienceOrb.class).setExperience(exp);
|
player.getWorld().spawn(location, ExperienceOrb.class).setExperience(exp);
|
||||||
expModifier
|
expModifier
|
||||||
.get(player.getName())
|
.get(player.getName())
|
||||||
.put(result.get().getType(), expModifier.get(player.getName()).get(result.get().getType()) - exp);
|
.put(
|
||||||
|
result.get().getType(),
|
||||||
|
expModifier.get(player.getName()).get(result.get().getType()) - exp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user