diff --git a/CUSTOM.zip b/CUSTOM.zip deleted file mode 100755 index 34cfff3..0000000 Binary files a/CUSTOM.zip and /dev/null differ diff --git a/dailyquests/build.gradle.kts b/dailyquests/build.gradle.kts deleted file mode 100755 index 3583f24..0000000 --- a/dailyquests/build.gradle.kts +++ /dev/null @@ -1,49 +0,0 @@ -plugins { - `java-library` - id("io.papermc.paperweight.userdev") version "2.0.0-beta.14" - id("xyz.jpenilla.run-paper") version "2.3.1" // Adds runServer and runMojangMappedServer tasks for testing -} -group = "de.hessj.dailyquests" -version = "1.0-SNAPSHOT" -description = "dailyquests" - -tasks.withType { - destinationDirectory.set(file("../")) -} - -dependencies { - implementation(files("../craftbukkit.jar")) - implementation(files("../helper-1.0-SNAPSHOT.jar")) - paperweight.paperDevBundle("1.21.4-R0.1-SNAPSHOT") -} - -tasks { - // Configure reobfJar to run when invoking the build task - assemble { - dependsOn(reobfJar) - } - - compileJava { - options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything - - // Set the release flag. This configures what version bytecode the compiler will emit, as well as what JDK APIs are usable. - // See https://openjdk.java.net/jeps/247 for more information. - options.release.set(21) - } - javadoc { - options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything - } - processResources { - filteringCharset = Charsets.UTF_8.name() // We want UTF-8 for everything - val props = mapOf( - "name" to project.name, - "version" to project.version, - "description" to project.description, - "apiVersion" to "1.21" - ) - inputs.properties(props) - filesMatching("plugin.yml") { - expand(props) - } - } -} \ No newline at end of file diff --git a/dailyquests/settings.gradle.kts b/dailyquests/settings.gradle.kts deleted file mode 100755 index 80beeb3..0000000 --- a/dailyquests/settings.gradle.kts +++ /dev/null @@ -1,5 +0,0 @@ -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0" -} - -rootProject.name = "dailyquests" \ No newline at end of file diff --git a/dailyquests/src/main/java/de/hessj/dailyquests/App.java b/dailyquests/src/main/java/de/hessj/dailyquests/App.java deleted file mode 100755 index 67f7a8c..0000000 --- a/dailyquests/src/main/java/de/hessj/dailyquests/App.java +++ /dev/null @@ -1,168 +0,0 @@ -package de.hessj.dailyquests; - -import de.hessj.helper.Helper; -import de.hessj.helper.Helper.Type; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.ChatColor; -import org.bukkit.*; -import org.bukkit.entity.Player; -import org.bukkit.inventory.*; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.components.CustomModelDataComponent; -import org.bukkit.persistence.PersistentDataType; -import org.bukkit.plugin.PluginManager; -import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.scheduler.BukkitRunnable; -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.ScoreboardManager; - -import java.time.*; -import java.util.*; -import java.util.AbstractMap.SimpleEntry; -import java.util.Map.Entry; - -public class App extends JavaPlugin { - - public static App main; - public Helper helper = new Helper(); - public static final String DIAMOND_DUST_KEY = "R3SDiamondDust"; - public static final String DIAMOND_DUST_RECIPE_KEY = "R3S_SR_DIAMONDDUST"; - public static final long TICKS_PER_SECOND = 20L; - public static final long SECONDS_PER_DAY = 86400L; - - public ArrayList rewardList = new ArrayList<>(); - public ItemStack diamondDust; - public NamespacedKey nskdiamondDust; - public NamespacedKey nskDD; - - @Override - public void onEnable() { - getLogger().info("Plugin enabled!"); - main = this; - - nskdiamondDust = new NamespacedKey(this, DIAMOND_DUST_KEY); - nskDD = new NamespacedKey(this, DIAMOND_DUST_RECIPE_KEY); - - setupRewards(); - DailyQuestsListeners.getTodaysQuest(); - - scheduleMidnightReset(); - registerListenersAndCommands(); - } - - @Override - public void onDisable() { - getLogger().info("Plugin disabled!"); - } - - private void registerListenersAndCommands() { - PluginManager pM = Bukkit.getPluginManager(); - pM.registerEvents(new DailyQuestsListeners(), this); - getCommand("quest").setExecutor(new DailyQuestsCommands()); - } - - private void scheduleMidnightReset() { - LocalDateTime now = LocalDateTime.now(); - LocalDateTime nextMidnight = now.plusDays(1).withHour(0).withMinute(0).withSecond(0); - ZonedDateTime zdt = ZonedDateTime.of(nextMidnight, ZoneId.of("Europe/Berlin")); - Duration duration = Duration.between(now, zdt); - long secondsUntilMidnight = duration.getSeconds(); - - Bukkit.getScheduler().runTaskLater(this, this::startQuestResetScheduler, secondsUntilMidnight * TICKS_PER_SECOND); - } - - private void startQuestResetScheduler() { - new BukkitRunnable() { - @Override - public void run() { - resetDailyQuestsForAllPlayers(); - } - }.runTaskTimer(this, 0L, SECONDS_PER_DAY * TICKS_PER_SECOND); - } - - private void resetDailyQuestsForAllPlayers() { - getConfig().set("players", null); - saveConfig(); - - for (Player player : Bukkit.getOnlinePlayers()) { - DailyQuestsListeners.getDailyQuests(player); - updatePlayerScoreboard(player); - player.sendMessage(helper.R3SMessage(Type.INFO, "[DailyQuests] Du hast eine neue Quest erhalten!")); - } - - saveConfig(); - } - - private void updatePlayerScoreboard(Player player) { - Entry entry = DailyQuestsCommands.boards.get(player.getName()); - Scoreboard board = entry.getKey(); - boolean isActive = entry.getValue(); - - ScoreboardManager manager = Bukkit.getScoreboardManager(); - player.setScoreboard(manager.getNewScoreboard()); - - if (isActive) { - player.setScoreboard(board); - } - - DailyQuestsCommands.boards.put(player.getName(), new SimpleEntry<>(board, isActive)); - } - - private void setupRewards() { - createDiamondDustItem(); - registerDiamondDustRecipe(); - initializeRewardList(); - } - - private void createDiamondDustItem() { - diamondDust = new ItemStack(Material.BARRIER); - ItemMeta meta = diamondDust.getItemMeta(); - meta.setCustomModelData(1000010); - - CustomModelDataComponent cmdc = meta.getCustomModelDataComponent(); - cmdc.setStrings(Collections.singletonList("diamond_dust")); - meta.setCustomModelDataComponent(cmdc); - - meta.displayName(Component.translatable(ChatColor.WHITE + "Diamant-Staub")); - meta.getPersistentDataContainer().set(nskdiamondDust, PersistentDataType.STRING, DIAMOND_DUST_KEY); - diamondDust.setItemMeta(meta); - } - - private void registerDiamondDustRecipe() { - RecipeChoice choice = new RecipeChoice.ExactChoice(diamondDust); - ShapedRecipe recipe = new ShapedRecipe(nskDD, new ItemStack(Material.DIAMOND)); - recipe.shape("** ", "** ", " "); - recipe.setIngredient('*', choice); - - if (getServer().getRecipe(nskDD) == null) { - getServer().addRecipe(recipe); - } - } - - private void initializeRewardList() { - rewardList.addAll(List.of( - new ItemStack(Material.EXPERIENCE_BOTTLE, 1), - new ItemStack(Material.APPLE, 10), - new ItemStack(Material.POTATO, 5), - new ItemStack(Material.CARROT, 5), - new ItemStack(Material.COOKED_BEEF, 10), - new ItemStack(Material.COOKED_CHICKEN, 10), - new ItemStack(Material.COOKED_COD, 10), - new ItemStack(Material.COOKED_MUTTON, 10), - new ItemStack(Material.COOKED_PORKCHOP, 10), - new ItemStack(Material.COOKED_RABBIT, 10), - new ItemStack(Material.COOKED_SALMON, 10), - new ItemStack(Material.IRON_INGOT, 5), - new ItemStack(Material.COPPER_INGOT, 5), - new ItemStack(Material.GOLD_NUGGET, 5), - new ItemStack(Material.FIREWORK_ROCKET, 5), - new ItemStack(Material.SADDLE, 1), - new ItemStack(Material.MELON_SEEDS, 5), - new ItemStack(Material.PUMPKIN_SEEDS, 5), - new ItemStack(Material.BEETROOT_SEEDS, 5), - new ItemStack(Material.DIAMOND, 1), - new ItemStack(Material.CAKE, 1), - new ItemStack(Material.ENDER_PEARL, 5) - )); - } -} \ No newline at end of file diff --git a/dailyquests/src/main/java/de/hessj/dailyquests/DailyQuestsCommands.java b/dailyquests/src/main/java/de/hessj/dailyquests/DailyQuestsCommands.java deleted file mode 100755 index 936a6b3..0000000 --- a/dailyquests/src/main/java/de/hessj/dailyquests/DailyQuestsCommands.java +++ /dev/null @@ -1,154 +0,0 @@ -package de.hessj.dailyquests; - -import java.util.*; -import java.util.AbstractMap.SimpleEntry; - - -import com.destroystokyo.paper.profile.PlayerProfile; -import com.destroystokyo.paper.profile.ProfileProperty; - -import de.hessj.helper.Helper.Type; - -import org.bukkit.*; -import org.bukkit.command.*; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.entity.Player; -import org.bukkit.inventory.*; -import org.bukkit.inventory.meta.SkullMeta; -import org.bukkit.persistence.PersistentDataType; -import org.bukkit.scoreboard.*; - -import net.kyori.adventure.text.Component; - -public class DailyQuestsCommands implements CommandExecutor { - - public static Map> boards = new HashMap<>(); - public static NamespacedKey nsksurpriseBox; - public static ItemStack surpriseBox; - public static de.hessj.helper.Helper helper = new de.hessj.helper.Helper(); - - public static void updateSB(Player p) { - boards.putIfAbsent(p.getName(), new SimpleEntry<>(Bukkit.getScoreboardManager().getNewScoreboard(), false)); - - Entry actionMapEntry = boards.get(p.getName()); - Scoreboard board = actionMapEntry.getKey(); - - Objective existing = board.getObjective(DisplaySlot.SIDEBAR); - if (existing != null) existing.unregister(); - - Objective o = board.registerNewObjective("dailyquests", ObjectiveCriteria.DUMMY, Component.text("Quest:")); - o.setDisplaySlot(DisplaySlot.SIDEBAR); - - ConfigurationSection questsSection = App.main.getConfig().getConfigurationSection("players." + p.getUniqueId() + ".currentQuests"); - if (questsSection == null) return; - - for (String questKey : questsSection.getKeys(false)) { - if (questKey.equals("null")) continue; - - String desc = formatQuestDescription(p.getUniqueId(), questKey); - if (desc.length() >= 39) desc = desc.substring(0, 39); - - int currentCount = getConfigInt("players." + p.getUniqueId() + ".currentQuests." + questKey + ".currentcount"); - - if ("finished".equals(getConfigString("players." + p.getUniqueId() + ".currentQuests." + questKey + ".state"))) { - board.resetScores(desc); - o.getScore(ChatColor.STRIKETHROUGH + desc).setScore(currentCount); - } else { - o.getScore(desc).setScore(currentCount); - } - - checkForCompletion(p); - } - - boards.put(p.getName(), new SimpleEntry<>(board, actionMapEntry.getValue())); - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (sender instanceof Player player) { - updateSB(player); - Entry entry = boards.get(player.getName()); - boolean showing = entry.getValue(); - - player.setScoreboard(showing ? Bukkit.getScoreboardManager().getNewScoreboard() : entry.getKey()); - boards.put(player.getName(), new SimpleEntry<>(entry.getKey(), !showing)); - } - return true; - } - - private static void checkForCompletion(Player p) { - UUID uuid = p.getUniqueId(); - int completed = 0; - int total = 0; - - for (String questID : App.main.getConfig().getConfigurationSection("quests").getKeys(false)) { - String path = "players." + uuid + ".currentQuests." + questID; - if (App.main.getConfig().contains(path)) { - if ("finished".equals(getConfigString(path + ".state"))) completed++; - total++; - } - } - - if (completed == total && !"claimed".equals(getConfigString("players." + uuid + ".rewards"))) { - giveSurpriseBox(p); - App.main.getConfig().set("players." + uuid + ".rewards", "claimed"); - App.main.saveConfig(); - } - } - - private static void giveSurpriseBox(Player p) { - surpriseBox = new ItemStack(Material.PLAYER_HEAD); - SkullMeta meta = (SkullMeta) surpriseBox.getItemMeta(); - meta.displayName(Component.text(ChatColor.WHITE + "Überraschungsbox")); - - PlayerProfile profile = Bukkit.createProfile(UUID.randomUUID(), null); - profile.getProperties().add(new ProfileProperty("textures", - "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDQxZmJlYTljMmQxOTA0MGU1NjdmMzg3YWI0NmIyZjhhM2ExZGE4ZWVjOWQzOTllMmU0YWRjZjA1YWRhOGEyYSJ9fX0=")); - meta.setPlayerProfile(profile); - - nsksurpriseBox = new NamespacedKey(App.main, "R3SSurpriseBox"); - meta.getPersistentDataContainer().set(nsksurpriseBox, PersistentDataType.STRING, "R3S_SurpriseBox"); - meta.lore(List.of(Component.text("Quest Belohnung"))); - surpriseBox.setItemMeta(meta); - - boolean given = false, hasSpace = false; - - for (ItemStack i : p.getInventory().getStorageContents()) { - if (i == null) { - hasSpace = true; - continue; - } - - if (i.isSimilar(surpriseBox) && i.getAmount() < 64) { - i.setAmount(i.getAmount() + 1); - given = true; - break; - } - } - - if (!given && hasSpace) { - p.getInventory().addItem(surpriseBox); - p.sendMessage(helper.R3SMessage(Type.SUCCESS, "[DailyQuests] Du hast 1x Überraschungsbox als Questbelohnung erhalten!")); - } else if (!given) { - p.sendMessage(helper.R3SMessage(Type.ERROR, "[DailyQuests] Dein Inventar ist voll, schaffe Platz und logge dich ein, um deine Questbelohnung zu erhalten!")); - } - } - - private static String getConfigString(String path) { - Object value = App.main.getConfig().get(path); - return value != null ? value.toString() : ""; - } - - private static int getConfigInt(String path) { - return App.main.getConfig().getInt(path); - } - - private static String formatQuestDescription(UUID playerId, String questKey) { - String base = getConfigString("quests." + questKey + ".description"); - String count = getConfigString("players." + playerId + ".currentQuests." + questKey + ".countneeded"); - String target = getConfigString("quests." + questKey + ".target"); - String tool = getConfigString("quests." + questKey + ".tool").replace("Material.", ""); - - return base.replace("[x]", count).replace("[b]", target).replace("[t]", tool); - } -} diff --git a/dailyquests/src/main/java/de/hessj/dailyquests/DailyQuestsListeners.java b/dailyquests/src/main/java/de/hessj/dailyquests/DailyQuestsListeners.java deleted file mode 100755 index 7f7cd35..0000000 --- a/dailyquests/src/main/java/de/hessj/dailyquests/DailyQuestsListeners.java +++ /dev/null @@ -1,1632 +0,0 @@ -package de.hessj.dailyquests; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Random; -import java.util.AbstractMap.SimpleEntry; -import java.util.Map.Entry; -import org.bukkit.Material; -import org.bukkit.block.data.type.Beehive; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Projectile; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.entity.EntityBreedEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityTameEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerEditBookEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerShearEntityEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.persistence.PersistentDataType; -import org.bukkit.scoreboard.Scoreboard; - -import de.hessj.helper.Helper.Type; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.ChatColor; - -public class DailyQuestsListeners implements Listener { - public static ArrayList todaysQuest = new ArrayList(); - public static String questDesc; - public static String questAction; - public static String questTarget; - public static String questTool; - public static String questCount; - public static Integer questId; - public Boolean given = false; - public Boolean freeSpace = false; - public de.hessj.helper.Helper helper = new de.hessj.helper.Helper(); - - @EventHandler - public void craftBlocker(PrepareItemCraftEvent e) { - if (e.getInventory().containsAtLeast(App.main.diamondDust, 1) && e.getInventory().getResult() != null - && !e.getInventory().getResult().getType().equals(Material.DIAMOND)) { - e.getInventory().setResult(null); - } - } - - @EventHandler - public void ovenBlocker(FurnaceBurnEvent e) { - - if (e.getFuel() != null && e.getFuel().equals(App.main.diamondDust)) { - e.setCancelled(true); - } - } - - public void giveSmallReward(Object obj, Player p) { - List giveList = Arrays.asList(new ItemStack(Material.EMERALD), App.main.diamondDust); - Random rand = new Random(); - ItemStack randomElement = giveList.get(rand.nextInt(giveList.size())); - String itemName = ""; - if (randomElement.equals(new ItemStack(Material.EMERALD))) { - itemName = "Smaragd"; - } else if (randomElement.equals(App.main.diamondDust)) { - itemName = "Diamant-Staub"; - } - - for (ItemStack i : p.getInventory().getStorageContents()) { - if (randomElement.equals(App.main.diamondDust)) { - if (i != null && i.getType() == randomElement.getType() && i.hasItemMeta() - && i.getItemMeta() != null - && i.getItemMeta().getPersistentDataContainer() != null - && i.getItemMeta().getPersistentDataContainer().has( - App.main.nskdiamondDust, PersistentDataType.STRING)) { - if (i.getAmount() < 64) { - i.setAmount(i.getAmount() + 1); - given = true; - break; - } - } else { - if (i == null) { - freeSpace = true; - } - } - } else { - if (i != null && i.getType() == randomElement.getType()) { - if (i.getAmount() < 64) { - i.setAmount(i.getAmount() + 1); - given = true; - break; - } - } else { - if (i == null) { - freeSpace = true; - } - } - } - } - if (!freeSpace && !given) {// ansonsten checken für free space - - p.sendMessage(helper.R3SMessage(Type.ERROR, "[DailyQuests] Dein Inventar ist voll, deine Questbelohnung wurde gedropped!")); - p.getWorld().dropItem( - p.getLocation(), randomElement); - App.main.getConfig() - .set("players." - + p.getUniqueId() - + ".currentQuests." + obj.toString() + ".state", "finished"); - App.main.saveConfig(); - } else { - if (!given && freeSpace) { - p.getInventory() - .addItem(randomElement); - } - p.sendMessage(helper.R3SMessage(Type.SUCCESS, "[DailyQuests] Du hast 1x " + itemName + " als Questbelohnung erhalten!")); - App.main.getConfig() - .set("players." - + p.getUniqueId() - + ".currentQuests." + obj.toString() + ".state", "finished"); - App.main.saveConfig(); - } - - } - - public static void getTodaysQuest() { - App.main.getConfig().addDefault("quests.19.description", "Sammle [x]x Honig"); - App.main.getConfig().addDefault("quests.19.action", "honey"); - App.main.getConfig().addDefault("quests.19.target", "none"); - App.main.getConfig().addDefault("quests.19.tool", "Material.GLASS_BOTTLE"); - App.main.getConfig().addDefault("quests.19.count", "[mid]"); - App.main.getConfig().addDefault("quests.18.description", "Gehe eine Runde angeln"); - App.main.getConfig().addDefault("quests.18.action", "fish"); - App.main.getConfig().addDefault("quests.18.target", "none"); - App.main.getConfig().addDefault("quests.18.tool", "Material.FISHING_ROD"); - App.main.getConfig().addDefault("quests.18.count", "[once]"); - App.main.getConfig().addDefault("quests.17.description", "Melke eine Kuh"); - App.main.getConfig().addDefault("quests.17.action", "milk"); - App.main.getConfig().addDefault("quests.17.target", "EntityType.COW"); - App.main.getConfig().addDefault("quests.17.tool", "Material.BUCKET"); - App.main.getConfig().addDefault("quests.17.count", "[once]"); - App.main.getConfig().addDefault("quests.16.description", "Heile einen Eisengolem"); - App.main.getConfig().addDefault("quests.16.action", "heal"); - App.main.getConfig().addDefault("quests.16.target", "EntityType.IRON_GOLEM"); - App.main.getConfig().addDefault("quests.16.tool", "Material.IRON_INGOT"); - App.main.getConfig().addDefault("quests.16.count", "[once]"); - App.main.getConfig().addDefault("quests.15.description", "Backe einen Kuchen"); - App.main.getConfig().addDefault("quests.15.action", "bake"); - App.main.getConfig().addDefault("quests.15.target", "Material.CAKE"); - App.main.getConfig().addDefault("quests.15.tool", "none"); - App.main.getConfig().addDefault("quests.15.count", "[once]"); - App.main.getConfig().addDefault("quests.14.description", "Schreibe ein Buch"); - App.main.getConfig().addDefault("quests.14.action", "write"); - App.main.getConfig().addDefault("quests.14.target", "Material.WRITABLE_BOOK"); - App.main.getConfig().addDefault("quests.14.tool", "none"); - App.main.getConfig().addDefault("quests.14.count", "[once]"); - App.main.getConfig().addDefault("quests.13.description", "Schere ein Schaf"); - App.main.getConfig().addDefault("quests.13.action", "shear"); - App.main.getConfig().addDefault("quests.13.target", "EntityType.SHEEP"); - App.main.getConfig().addDefault("quests.13.tool", "none"); - App.main.getConfig().addDefault("quests.13.count", "[once]"); - App.main.getConfig().addDefault("quests.12.description", "Begehe Bedrock mit Lederstiefel"); - App.main.getConfig().addDefault("quests.12.action", "touch"); - App.main.getConfig().addDefault("quests.12.target", "Material.BEDROCK"); - App.main.getConfig().addDefault("quests.12.tool", "Material.LEATHER_BOOTS"); - App.main.getConfig().addDefault("quests.12.count", "[once]"); - App.main.getConfig().addDefault("quests.11.description", "Züchte [x]x Kuh"); - App.main.getConfig().addDefault("quests.11.action", "breed"); - App.main.getConfig().addDefault("quests.11.target", "CraftCow"); - App.main.getConfig().addDefault("quests.11.tool", "none"); - App.main.getConfig().addDefault("quests.11.count", "[low]"); - App.main.getConfig().addDefault("quests.10.description", "Schneeballschlacht mit Schneemann"); - App.main.getConfig().addDefault("quests.10.action", "snowfight"); - App.main.getConfig().addDefault("quests.10.target", "EntityType.SNOWMAN"); - App.main.getConfig().addDefault("quests.10.tool", "Material.SNOWBALL"); - App.main.getConfig().addDefault("quests.10.count", "[once]"); - App.main.getConfig().addDefault("quests.9.description", "Reise zum End"); - App.main.getConfig().addDefault("quests.9.action", "travel"); - App.main.getConfig().addDefault("quests.9.target", - App.main.getServer().getWorlds().get(0).getName() + "_end"); - App.main.getConfig().addDefault("quests.9.tool", "none"); - App.main.getConfig().addDefault("quests.9.count", "[once]"); - App.main.getConfig().addDefault("quests.8.description", "Reise zum Nether"); - App.main.getConfig().addDefault("quests.8.action", "travel"); - App.main.getConfig().addDefault("quests.8.target", - App.main.getServer().getWorlds().get(0).getName() + "_nether"); - App.main.getConfig().addDefault("quests.8.tool", "none"); - App.main.getConfig().addDefault("quests.8.count", "[once]"); - App.main.getConfig().addDefault("quests.7.description", "Töte [x]x Skelett mit Bogen"); - App.main.getConfig().addDefault("quests.7.action", "kill"); - App.main.getConfig().addDefault("quests.7.target", "EntityType.SKELETON"); - App.main.getConfig().addDefault("quests.7.tool", "Material.BOW"); - App.main.getConfig().addDefault("quests.7.count", "[high]"); - App.main.getConfig().addDefault("quests.6.description", "Zähme einen Ozelot"); - App.main.getConfig().addDefault("quests.6.action", "tame"); - App.main.getConfig().addDefault("quests.6.target", "EntityType.OCELOT"); - App.main.getConfig().addDefault("quests.6.tool", "none"); - App.main.getConfig().addDefault("quests.6.count", "[once]"); - App.main.getConfig().addDefault("quests.5.description", "Zähme einen Wolf"); - App.main.getConfig().addDefault("quests.5.action", "tame"); - App.main.getConfig().addDefault("quests.5.target", "EntityType.WOLF"); - App.main.getConfig().addDefault("quests.5.tool", "none"); - App.main.getConfig().addDefault("quests.5.count", "[once]"); - App.main.getConfig().addDefault("quests.4.description", "Töte [x]x Spinne"); - App.main.getConfig().addDefault("quests.4.action", "kill"); - App.main.getConfig().addDefault("quests.4.target", "EntityType.SPIDER"); - App.main.getConfig().addDefault("quests.4.tool", "none"); - App.main.getConfig().addDefault("quests.4.count", "[mid]"); - App.main.getConfig().addDefault("quests.3.description", "Baue [x]x Kohle mit Holzaxt ab"); - App.main.getConfig().addDefault("quests.3.action", "break"); - App.main.getConfig().addDefault("quests.3.target", "Material.COAL_ORE"); - App.main.getConfig().addDefault("quests.3.tool", "Material.WOODEN_AXE"); - App.main.getConfig().addDefault("quests.3.count", "[high]"); - App.main.getConfig().addDefault("quests.2.description", "Baue [x]x Kohle ab"); - App.main.getConfig().addDefault("quests.2.action", "break"); - App.main.getConfig().addDefault("quests.2.target", "Material.COAL_ORE"); - App.main.getConfig().addDefault("quests.2.tool", "none"); - App.main.getConfig().addDefault("quests.2.count", "[high]"); - App.main.getConfig().addDefault("quests.1.description", "Töte [x]x Zombie mit Holzschwert"); - App.main.getConfig().addDefault("quests.1.action", "kill"); - App.main.getConfig().addDefault("quests.1.target", "EntityType.ZOMBIE"); - App.main.getConfig().addDefault("quests.1.tool", "Material.WOODEN_SWORD"); - App.main.getConfig().addDefault("quests.1.count", "[high]"); - App.main.getConfig().options().copyDefaults(true); - App.main.saveConfig(); - - } - - public static ArrayList questList = new ArrayList(); - - public static void getDailyQuests(Player p) { - if (!App.main.getConfig().contains(("players." + p.getUniqueId()).toString())) { - int questsAvailable = 0; - for (Object obj : App.main.getConfig().getConfigurationSection("quests").getKeys(false) - .toArray()) { - questsAvailable++; - obj.toString();// damit Warning weg ist - } - int randoQuestOne = 9999; - int randoQuestTwo = 9999; - int randoQuestThree = 9999; - for (int i = 1; i <= 3; i++) { - int randomQuestID = new Random().nextInt(questsAvailable) + 1; - while (randomQuestID == randoQuestOne || randomQuestID == randoQuestTwo - || randomQuestID == randoQuestThree) { - randomQuestID = new Random().nextInt(questsAvailable) + 1; - } - questDesc = App.main.getConfig().getString("quests." + randomQuestID + ".description"); - questAction = App.main.getConfig().getString("quests." + randomQuestID + ".action"); - questTarget = App.main.getConfig().getString("quests." + randomQuestID + ".target"); - questTool = App.main.getConfig().getString("quests." + randomQuestID + ".tool"); - questCount = App.main.getConfig().getString("quests." + randomQuestID + ".count"); - questId = randomQuestID; - if (i == 1) { - randoQuestOne = randomQuestID; - } else if (i == 2) { - randoQuestTwo = randomQuestID; - } else if (i == 3) { - randoQuestThree = randomQuestID; - } - App.main.getConfig().set( - "players." + p.getUniqueId() + ".currentQuests." + questId + ".state", - "ongoing"); - App.main.getConfig() - .set("players." + p.getUniqueId() + ".currentQuests." + questId - + ".currentcount", - 0); - int qCount = 9999; - if (questCount.equals("[once]")) { - qCount = 1; - } else if (questCount.equals("[low]")) { - qCount = random_int(1, 3); - - } else if (questCount.equals("[mid]")) { - qCount = random_int(2, 4); - } else if (questCount.equals("[high]")) { - qCount = random_int(3, 5); - } - App.main.getConfig().set("players." + p.getUniqueId() + ".currentQuests." + questId - + ".countneeded", qCount); - App.main.getConfig().set("players." + p.getUniqueId() + ".rewards", "pending"); - } - App.main.saveConfig(); - } - } - - public static int random_int(int Min, int Max) { - return (int) (Math.random() * (Max - Min)) + Min; - } - - @EventHandler - public void onLogoff(PlayerQuitEvent e) { - Entry actionMapEntry = DailyQuestsCommands.boards.get(e.getPlayer().getName()); - if (actionMapEntry != null) { - Scoreboard board = actionMapEntry.getKey(); - DailyQuestsCommands.boards.put(e.getPlayer().getName(), - new SimpleEntry(board, false)); - } - } - - @EventHandler - public void onLogin(PlayerJoinEvent e) { - - - - e.getPlayer().discoverRecipe(App.main.nskDD); - - - - - - - - - - e.getPlayer().sendMessage(helper.R3SMessage(Type.INFO, "[DailyQuests] Hallo, " + e.getPlayer().getName() - + ". Du kannst die Questanzeige mit \"/quest\" ein- oder ausblenden.")); - getDailyQuests(e.getPlayer()); - } - - @EventHandler - public void onItemUse(PlayerInteractEvent e) { - if ((e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) - && e.getPlayer().getInventory().getItemInMainHand().getType() == Material.PLAYER_HEAD - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().displayName() != null && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().displayName() - .equals(Component.translatable(ChatColor.WHITE + "Überraschungsbox"))) { - e.setCancelled(true); - freeSpace = false; - ItemStack randoItem = App.main.rewardList - .get(((new Random())).nextInt(App.main.rewardList.size())); - for (ItemStack i : e.getPlayer().getInventory().getStorageContents()) { - if (i == null || i == randoItem) { - freeSpace = true; - } - } - if (freeSpace) { - e.getPlayer().getInventory().addItem(randoItem); - e.getPlayer().getInventory().getItemInMainHand() - .setAmount(e.getPlayer().getInventory().getItemInMainHand().getAmount() - - 1); - } else { - e.getPlayer().sendMessage(helper.R3SMessage(Type.ERROR, "[DailyQuests] Dein Inventar ist voll!")); - } - } - } - - @EventHandler - public void onEntityHurt(EntityDamageByEntityEvent e) { - if (e.getDamager() instanceof Projectile && ((Projectile) e.getDamager()).getShooter() instanceof Player - && e.getEntity().getType().equals(EntityType.SNOW_GOLEM)) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." - + ((Player) ((Projectile) e.getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests") - .getKeys(false).toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")) - .toString() - .equals("snowfight")) { - - if (("EntityType." + e.getEntityType().toString()) - .equals((App.main.getConfig().get( - "quests." + obj.toString() + ".target")) - .toString()) - && App.main.getConfig() - .get("players." - + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".state") - .equals("ongoing")) { - if (!App.main.getConfig() - .get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getInventory() - .getItemInMainHand() - .getType().toString()) - .equals( - App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig().set( - "players." - + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig().set( - "players." + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." - + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." - + ((Player) ((Projectile) e - .getDamager()).getShooter()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - - giveSmallReward(obj, ((Player) ((Projectile) e.getDamager()) - .getShooter())); - - } - DailyQuestsCommands.updateSB( - ((Player) ((Projectile) e.getDamager()).getShooter())); - } - } - } - } - } - - @EventHandler - public void onEntityKill(EntityDeathEvent e) { - if (e.getEntity().getKiller() instanceof Player) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getEntity().getKiller().getUniqueId() - + ".currentQuests") - .getKeys(false).toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")) - .toString().equals("kill")) { - - if (("EntityType." + e.getEntityType().toString()) - .equals((App.main.getConfig().get( - "quests." + obj.toString() + ".target")) - .toString()) - && App.main.getConfig().get("players." - + e.getEntity().getKiller() - .getUniqueId() - + ".currentQuests." + obj.toString() - + ".state").equals("ongoing")) { - if (!App.main.getConfig() - .get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + e.getEntity().getKiller() - .getInventory().getItemInMainHand() - .getType().toString()).equals( - App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig().set( - "players." + e.getEntity() - .getKiller() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getEntity().getKiller() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getEntity() - .getKiller() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getEntity().getKiller() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." - + e.getEntity().getKiller() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getEntity() - .getKiller() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig().get("players." - + e.getEntity().getKiller() - .getUniqueId() - + ".currentQuests." + obj.toString() - + ".state").equals("ongoing")) { - freeSpace = false; - given = false; - giveSmallReward(obj, e.getEntity().getKiller()); - - } - DailyQuestsCommands.updateSB(e.getEntity().getKiller()); - } - } - } - } - } - - @EventHandler - public void onCraft(CraftItemEvent e) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + ((Player) e.getWhoClicked()).getUniqueId() - + ".currentQuests") - .getKeys(false).toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("bake")) { - if (("Material." + e.getRecipe().getResult().getType().toString()) - .equals((App.main.getConfig() - .get("quests." + obj.toString() + ".target")) - .toString()) - && App.main.getConfig().get("players." - + ((Player) e.getWhoClicked()).getUniqueId() - + ".currentQuests." + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + ((Player) e.getWhoClicked()).getInventory() - .getItemInMainHand().getType() - .toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + ((Player) e - .getWhoClicked()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + ((Player) e.getWhoClicked()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + ((Player) e.getWhoClicked()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + ((Player) e.getWhoClicked()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + ((Player) e.getWhoClicked()).getUniqueId() - + ".currentQuests." - + obj.toString() + ".currentcount") == App.main - .getConfig() - .getInt("players." + ((Player) e - .getWhoClicked()) - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig().get("players." - + ((Player) e.getWhoClicked()).getUniqueId() - + ".currentQuests." + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, ((Player) e.getWhoClicked())); - - } - DailyQuestsCommands.updateSB(((Player) e.getWhoClicked())); - } - } - } - } - - @EventHandler - public void onBlockBreak(BlockBreakEvent e) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("break")) { - - if (("Material." + e.getBlock().getType().toString()) - .equals((App.main.getConfig() - .get("quests." + obj.toString() + ".target")) - .toString()) - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + e.getPlayer().getInventory() - .getItemInMainHand().getType().toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - } - - @EventHandler - public void onGolemHeal(PlayerInteractEntityEvent e) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("heal")) { - - if (("EntityType." + e.getRightClicked().getType().toString())//////////// - .equals((App.main.getConfig() - .get("quests." + obj.toString() + ".target")) - .toString()) - && ((LivingEntity) e.getRightClicked()).getHealth() < 100 - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + e.getPlayer().getInventory() - .getItemInMainHand().getType().toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - } - - @EventHandler - public void onCowMilking(PlayerInteractEntityEvent e) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("milk")) { - - if (("EntityType." + e.getRightClicked().getType().toString())//////////// - .equals((App.main.getConfig() - .get("quests." + obj.toString() + ".target")) - .toString()) - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + e.getPlayer().getInventory() - .getItemInMainHand().getType().toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - } - - @EventHandler - public void onFish(PlayerFishEvent e) { - - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("fish")) { - - if (App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + e.getPlayer().getInventory() - .getItemInMainHand().getType().toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool")) - && e.getCaught() != null) { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - } - - @EventHandler - public void onTame(EntityTameEvent e) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getOwner().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("tame")) { - - if (("EntityType." + e.getEntityType()) - .equals((App.main.getConfig() - .get("quests." + obj.toString() + ".target")) - .toString()) - && App.main.getConfig() - .get("players." + e.getOwner().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." - + ((Player) e.getOwner()).getInventory() - .getItemInMainHand().getType() - .toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + e.getOwner() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getOwner().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getOwner().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getOwner() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getOwner().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getOwner() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getOwner().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, (Player) e.getOwner()); - - } - DailyQuestsCommands.updateSB(((Player) e.getOwner())); - } - } - } - } - - @EventHandler - public void onNetherEnter(PlayerChangedWorldEvent e) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("travel")) { - - if (e.getPlayer().getWorld().getName() - .equals((App.main.getConfig() - .get("quests." + obj.toString() + ".target")) - .toString()) - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." - + ((Player) e.getPlayer()).getInventory() - .getItemInMainHand().getType() - .toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - - } - DailyQuestsCommands.updateSB(((Player) e.getPlayer())); - } - } - } - } - - @EventHandler - public void onBreed(EntityBreedEvent e) { - if (e.getBreeder() != null) { - for (Object obj : App.main.getConfig() - .getConfigurationSection( - "players." + e.getBreeder().getUniqueId() + ".currentQuests") - .getKeys(false).toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")) - .toString().equals("breed")) { - - if (e.getEntity().toString() - .equals((App.main.getConfig().get( - "quests." + obj.toString() + ".target")) - .toString()) - - && App.main.getConfig().get("players." - + e.getBreeder().getUniqueId() - + ".currentQuests." + obj.toString() - + ".state").equals("ongoing")) { - if (!App.main.getConfig() - .get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + ((Player) e.getBreeder()) - .getInventory().getItemInMainHand() - .getType().toString()).equals( - App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig().set( - "players." + e.getBreeder() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getBreeder().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getBreeder() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getBreeder().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getBreeder().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getBreeder() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig().get("players." - + e.getBreeder().getUniqueId() - + ".currentQuests." + obj.toString() - + ".state").equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, (Player) e.getBreeder()); - - } - DailyQuestsCommands.updateSB(((Player) e.getBreeder())); - } - } - } - } - } - - @EventHandler - public void onBlockTouch(PlayerMoveEvent e) { - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("touch")) { - - if (("Material." + e.getPlayer().getLocation().subtract(0, 1, 0).getBlock() - .getType().toString()) - .equals((App.main.getConfig().get("quests." - + obj.toString() + ".target")) - .toString()) - - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - // WENN SPIELER LEDER BOOTS AN HAT - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (e.getPlayer().getInventory().getBoots() != null - && ("Material." + e.getPlayer().getInventory() - .getBoots().getType() - .toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - - } - - @EventHandler - public void onSheepShear(PlayerShearEntityEvent e) { - if (("EntityType." + e.getEntity().getType().toString()).equals("EntityType.SHEEP")) { - for (Object obj : App.main.getConfig() - .getConfigurationSection( - "players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")) - .toString().equals("shear")) { - - if (("EntityType." + e.getEntity().getType().toString()) - .equals((App.main.getConfig().get( - "quests." + obj.toString() + ".target")) - .toString()) - - && App.main.getConfig().get("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - // WENN SPIELER LEDER BOOTS AN HAT - if (!App.main.getConfig() - .get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (e.getPlayer().getInventory().getItemInMainHand() - .getType().toString() - .equals(App.main.getConfig().get( - "quests." + obj.toString() - + ".tool"))) { - App.main.getConfig().set( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig().get("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - - } - - } - - @EventHandler - public void onHoneyCollect(PlayerInteractEvent e) { - - if (e.getClickedBlock() != null - && (e.getClickedBlock().getType() == Material.BEEHIVE - || e.getClickedBlock().getType() == Material.BEE_NEST) - && e.getAction() == Action.RIGHT_CLICK_BLOCK) { - - Beehive b = (Beehive) e.getClickedBlock().getState().getBlockData(); - - for (Object obj : App.main.getConfig() - .getConfigurationSection( - "players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")) - .toString().equals("honey")) { - - if (App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing") && b.getHoneyLevel() == 5) { - // WENN SPIELER LEDER BOOTS AN HAT - if (!App.main.getConfig() - .get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." - + e.getPlayer().getInventory() - .getItemInMainHand() - .getType().toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig().set( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig().get("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - - } - - } - - @EventHandler - public void onBookWrite(PlayerEditBookEvent e) { - - for (Object obj : App.main.getConfig() - .getConfigurationSection("players." + e.getPlayer().getUniqueId() + ".currentQuests") - .getKeys(false) - .toArray()) { - // obj = questnr - if (!obj.toString().equals("null")) { - if ((App.main.getConfig().get("quests." + obj.toString() + ".action")).toString() - .equals("write")) { - - if (e.isSigning() && App.main.getConfig().get( - "players." + e.getPlayer().getUniqueId() + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - if (!App.main.getConfig().get("quests." + obj.toString() + ".tool") - .equals("none")) { - if (("Material." + e.getPlayer().getInventory() - .getItemInMainHand().getType().toString()) - .equals(App.main.getConfig() - .get("quests." + obj - .toString() - + ".tool"))) { - App.main.getConfig() - .set("players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig() - .getInt("players." - + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - } else { - App.main.getConfig() - .set("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount", - App.main.getConfig().getInt( - "players." + e.getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".currentcount") - + 1); - } - App.main.saveConfig(); - } - if (App.main.getConfig() - .getInt("players." + e.getPlayer().getUniqueId() - + ".currentQuests." + obj.toString() - + ".currentcount") == App.main - .getConfig() - .getInt("players." + e - .getPlayer() - .getUniqueId() - + ".currentQuests." - + obj.toString() - + ".countneeded") - && App.main.getConfig() - .get("players." + e.getPlayer().getUniqueId() - + ".currentQuests." - + obj.toString() + ".state") - .equals("ongoing")) { - - freeSpace = false; - given = false; - giveSmallReward(obj, e.getPlayer()); - } - DailyQuestsCommands.updateSB(e.getPlayer()); - } - } - } - } -} \ No newline at end of file diff --git a/dailyquests/src/main/resources/plugin.yml b/dailyquests/src/main/resources/plugin.yml deleted file mode 100755 index d0b4fbf..0000000 --- a/dailyquests/src/main/resources/plugin.yml +++ /dev/null @@ -1,10 +0,0 @@ -main: de.hessj.dailyquests.App -name: DailyQuestsPlugin -version: 0.1 -api-version: 1.21 -depend: [HelperPlugin] - -commands: - quest: - description: Zeigt die heutigen Quests an - usage: / \ No newline at end of file diff --git a/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 53f6ebf..1717ccd 100644 Binary files a/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log b/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log index b0b7e7a..0f98e0a 100644 --- a/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log +++ b/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log @@ -1,2 +1,2 @@ Command: /opt/homebrew/Cellar/openjdk/23.0.2/libexec/openjdk.jdk/Contents/Home/bin/java -Xmx1G -classpath /Users/janik/.gradle/caches/modules-2/files-2.1/net.fabricmc/tiny-remapper/0.11.1/6c1f29838864ba8f495855edfc8ef17706fedb5d/tiny-remapper-0.11.1-fat.jar net.fabricmc.tinyremapper.Main /Users/janik/Desktop/MCPlugins/environmentex-1.0-SNAPSHOT.jar /Users/janik/Desktop/MCPlugins/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar /Users/janik/Desktop/MCPlugins/environmentex/.gradle/caches/paperweight/taskCache/reobfMappings.tiny mojang spigot /Users/janik/Desktop/MCPlugins/environmentex/.gradle/caches/paperweight/taskCache/mappedServerJar.jar --threads=1 -[INFO] Finished after 1133,52 ms. +[INFO] Finished after 1086,27 ms. diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/App$1.class b/environmentex/build/classes/java/main/de/hessj/environmentex/App$1.class index 506711f..c5c1791 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/App$1.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/App$1.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/App$2.class b/environmentex/build/classes/java/main/de/hessj/environmentex/App$2.class index 0276289..37ec526 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/App$2.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/App$2.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/App.class b/environmentex/build/classes/java/main/de/hessj/environmentex/App.class index 5885845..85531bb 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/App.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/App.class differ diff --git a/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar b/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar index 152e60d..92d696d 100644 Binary files a/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar and b/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar differ diff --git a/environmentex/build/tmp/compileJava/previous-compilation-data.bin b/environmentex/build/tmp/compileJava/previous-compilation-data.bin index d9a60cc..08168ea 100644 Binary files a/environmentex/build/tmp/compileJava/previous-compilation-data.bin and b/environmentex/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/environmentex/src/main/java/de/hessj/environmentex/App.java b/environmentex/src/main/java/de/hessj/environmentex/App.java index a7ee7e9..2023590 100755 --- a/environmentex/src/main/java/de/hessj/environmentex/App.java +++ b/environmentex/src/main/java/de/hessj/environmentex/App.java @@ -25,9 +25,7 @@ import org.bukkit.inventory.RecipeChoice.MaterialChoice; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.components.CustomModelDataComponent; import org.bukkit.persistence.PersistentDataType; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; + import java.util.AbstractMap.SimpleEntry; import java.util.ArrayList; import java.util.Arrays; @@ -59,7 +57,17 @@ public class App extends JavaPlugin { public static final String DIAMOND_DUST_RECIPE_KEY = "R3S_SR_DIAMONDDUST"; public static final long TICKS_PER_SECOND = 20L; public static final long SECONDS_PER_DAY = 86400L; + public NamespacedKey nskPokeball; + public NamespacedKey nskUsedPokeball; + public NamespacedKey nskEntityPokeball; + public NamespacedKey nskEntVariantPokeball; + public NamespacedKey nskEntStylePokeball; + public NamespacedKey nskAgePokeball; + public ItemStack newPokeball; + public ItemStack usedPokeball; + public HashMap isThrownHM = new HashMap<>(); + public ArrayList rewardList = new ArrayList<>(); public ItemStack diamondDust; public NamespacedKey nskdiamondDust; @@ -113,7 +121,36 @@ public NamespacedKey nskHopper; getServer().addRecipe(srHopper); } + private ItemStack createPokeball() { + ItemStack ball = new ItemStack(Material.SNOWBALL); + ItemMeta meta = ball.getItemMeta(); + meta.displayName(Component.translatable(ChatColor.WHITE + "Pokéball")); + meta.setCustomModelData(1000011); + CustomModelDataComponent cmd = meta.getCustomModelDataComponent(); + if (cmd != null) { + cmd.setStrings(List.of("pokeball")); + meta.setCustomModelDataComponent(cmd); + } + + meta.getPersistentDataContainer().set(nskPokeball, PersistentDataType.STRING, "R3S_Pokeball"); + ball.setItemMeta(meta); + + return ball; + } + + private void registerPokeballRecipe(ItemStack item) { + ShapedRecipe recipe = new ShapedRecipe(nskPokeball, item); + recipe.shape("RRR", "SES", "WWW"); + recipe.setIngredient('R', Material.RED_CONCRETE); + recipe.setIngredient('S', Material.BLACK_CONCRETE); + recipe.setIngredient('E', Material.IRON_NUGGET); + recipe.setIngredient('W', Material.WHITE_CONCRETE); + + if (getServer().getRecipe(nskPokeball) == null) { + getServer().addRecipe(recipe); + } + } @Override public void onEnable() { SquidPrevention.removeSquidReceipes(); @@ -131,6 +168,18 @@ public NamespacedKey nskHopper; main = this; + + nskPokeball = new NamespacedKey(this, "R3SPokeball"); + nskUsedPokeball = new NamespacedKey(this, "R3SUsedPokeball"); + nskEntityPokeball = new NamespacedKey(this, "R3SEntity"); + nskEntVariantPokeball = new NamespacedKey(this, "R3SEntityVariant"); + nskEntStylePokeball = new NamespacedKey(this, "R3SEntityStyle"); + nskAgePokeball = new NamespacedKey(this, "R3SEntityAge"); +newPokeball = createPokeball(); + registerPokeballRecipe(newPokeball); +for (Player p : Bukkit.getOnlinePlayers()) { + isThrownHM.put(p, false); + } DailyQuests.getTodaysQuest(); lockedChest = new ItemStack(Material.CHEST); ItemMeta imlockedChest = lockedChest.getItemMeta(); @@ -535,6 +584,7 @@ public NamespacedKey nskHopper; pM.registerEvents(new DeathLoc(), this); pM.registerEvents(new BetterHoppers(), this); pM.registerEvents(new DailyQuests(), this); + pM.registerEvents(new Pokeballs(), this); getCommand("test").setExecutor(new EnvironmentExCommands()); getCommand("y").setExecutor(new EnvironmentExCommands()); getCommand("n").setExecutor(new EnvironmentExCommands()); diff --git a/pokeballs/src/main/java/de/hessj/pokeballs/PokeballsListeners.java b/environmentex/src/main/java/de/hessj/environmentex/Pokeballs.java old mode 100755 new mode 100644 similarity index 98% rename from pokeballs/src/main/java/de/hessj/pokeballs/PokeballsListeners.java rename to environmentex/src/main/java/de/hessj/environmentex/Pokeballs.java index c94e5ad..0338560 --- a/pokeballs/src/main/java/de/hessj/pokeballs/PokeballsListeners.java +++ b/environmentex/src/main/java/de/hessj/environmentex/Pokeballs.java @@ -1,1216 +1,1215 @@ -package de.hessj.pokeballs; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.DyeColor; -import org.bukkit.Location; -import org.bukkit.Particle; -import org.bukkit.Sound; -import org.bukkit.block.data.type.Fence; -import org.bukkit.block.data.type.Stairs; -import org.bukkit.entity.Allay; -import org.bukkit.entity.Armadillo; -import org.bukkit.entity.Axolotl; -import org.bukkit.entity.Bee; -import org.bukkit.entity.Cat; -import org.bukkit.entity.ChestedHorse; -import org.bukkit.entity.Chicken; -import org.bukkit.entity.Cow; -import org.bukkit.entity.Donkey; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Fox; -import org.bukkit.entity.Frog; -import org.bukkit.entity.GlowSquid; -import org.bukkit.entity.Goat; -import org.bukkit.entity.Horse; -import org.bukkit.entity.Llama; -import org.bukkit.entity.Mule; -import org.bukkit.entity.MushroomCow; -import org.bukkit.entity.Ocelot; -import org.bukkit.entity.Panda; -import org.bukkit.entity.Parrot; -import org.bukkit.entity.Pig; -import org.bukkit.entity.Player; -import org.bukkit.entity.PolarBear; -import org.bukkit.entity.Projectile; -import org.bukkit.entity.Rabbit; -import org.bukkit.entity.Sheep; -import org.bukkit.entity.Snowball; -import org.bukkit.entity.Squid; -import org.bukkit.entity.Turtle; -import org.bukkit.entity.Wolf; -import org.bukkit.entity.Axolotl.Variant; -import org.bukkit.entity.Horse.Color; -import org.bukkit.entity.Horse.Style; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.persistence.PersistentDataType; -import de.hessj.helper.Helper.Type; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.format.TextColor; -import net.kyori.adventure.text.format.TextDecoration; -import net.md_5.bungee.api.ChatColor; - -public class PokeballsListeners implements Listener { - public static de.hessj.helper.Helper helper = new de.hessj.helper.Helper(); - - @EventHandler - public void craftBlocker(PrepareItemCraftEvent evt) { - if (evt.getRecipe() != null && evt.getRecipe().getResult() != null) { - if (!evt.getRecipe().getResult().equals(App.main.newPokeball)) { - if (evt.getInventory().containsAtLeast(App.main.newPokeball, 1) - || evt.getInventory().containsAtLeast(App.main.usedPokeball, 1)) { - evt.getInventory().setResult(null); - } - } - - } - } - - @EventHandler - public void onLogin(PlayerJoinEvent e) { - App.main.isThrownHM.put(e.getPlayer(), false); - e.getPlayer().discoverRecipe(App.main.nskPokeball); - } - - @EventHandler - public void onEmptyBallThrow(PlayerInteractEvent e) { - if (e.getPlayer().getInventory().getItemInMainHand() != null - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta() != null && e.getPlayer() - .getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() != null) { - if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nskPokeball, PersistentDataType.STRING)) { - - if (e.getAction() == Action.LEFT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_AIR - || e.getAction() == Action.PHYSICAL) { - return; - } - - if (e.getClickedBlock() != null && e.getClickedBlock().getBlockData() != null - && (e.getClickedBlock().getBlockData() instanceof Stairs - || e.getClickedBlock().getBlockData() instanceof Fence)) { - } else if (e.getClickedBlock() != null && helper.isInteractable(e.getClickedBlock())) { - return; - } - - e.setCancelled(true); - if (!App.main.isThrownHM.get(e.getPlayer())) { - App.main.isThrownHM.put(e.getPlayer(), true); - Snowball b = e.getPlayer().launchProjectile(Snowball.class); - b.customName(Component.text(ChatColor.WHITE + "Pokéball")); - b.setItem(App.main.newPokeball); - e.getPlayer().getWorld().playSound(e.getPlayer().getLocation(), Sound.ENTITY_SNOWBALL_THROW, 1, - 1); - - e.getPlayer().getInventory().getItemInMainHand().subtract(1); - } else { - e.getPlayer().sendMessage(helper.R3SMessage(Type.ERROR, - "[Pokéball] Du kannst nur einen Pokéball nach dem anderen werfen!")); - - } - } - - } - } - - @EventHandler - public void onUsedBallThrow(PlayerInteractEvent e) { - if (e.getPlayer().getInventory().getItemInMainHand() != null - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta() != null && e.getPlayer() - .getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() != null) { - if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nskUsedPokeball, PersistentDataType.STRING)) { - - if (e.getAction() == Action.LEFT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_AIR - || e.getAction() == Action.PHYSICAL) { - return; - } - - if (e.getClickedBlock() != null && e.getClickedBlock().getBlockData() != null - && (e.getClickedBlock().getBlockData() instanceof Stairs - || e.getClickedBlock().getBlockData() instanceof Fence)) { - } else if (e.getClickedBlock() != null && helper.isInteractable(e.getClickedBlock())) { - return; - } - - e.setCancelled(true); - - if (!App.main.isThrownHM.get(e.getPlayer())) { - App.main.isThrownHM.put(e.getPlayer(), true); - - Snowball b = e.getPlayer().launchProjectile(Snowball.class); - String enti = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() - .getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING); - Integer variant = null; - Integer type = null; - Integer age = null; - - if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta() - .getPersistentDataContainer().has(App.main.nskEntVariantPokeball)) { - variant = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() - .getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER); - } - if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nskEntStylePokeball)) { - type = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() - .getPersistentDataContainer() - .get(App.main.nskEntStylePokeball, PersistentDataType.INTEGER); - } - if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nskAgePokeball)) { - age = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() - .getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER); - } - - App.main.usedPokeball = App.main.newPokeball.clone(); - ItemMeta usedPBm = App.main.usedPokeball.getItemMeta(); - usedPBm.getPersistentDataContainer().remove(App.main.nskPokeball); - usedPBm.getPersistentDataContainer().set(App.main.nskUsedPokeball, PersistentDataType.STRING, - "R3S_UsedPokeball"); - usedPBm.getPersistentDataContainer().set(App.main.nskEntityPokeball, PersistentDataType.STRING, - enti); - if (variant != null) { - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - variant); - } - if (type != null) { - usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, - PersistentDataType.INTEGER, - type); - } - if (age != null) { - usedPBm.getPersistentDataContainer().set(App.main.nskAgePokeball, - PersistentDataType.INTEGER, - age); - } - usedPBm.displayName(Component.translatable(ChatColor.WHITE + enti + " - Pokéball")); - App.main.usedPokeball.setItemMeta(usedPBm); - b.setItem(App.main.usedPokeball); - - e.getPlayer().getWorld().playSound(e.getPlayer().getLocation(), Sound.ENTITY_SNOWBALL_THROW, 1, - 1); - - e.getPlayer().getInventory().getItemInMainHand().subtract(1); - } else { - e.getPlayer().sendMessage(helper.R3SMessage(Type.ERROR, - "[Pokéball] Du kannst nur einen Pokéball nach dem anderen werfen!")); - - } - } - - } - } - - public Boolean isEmptyBall(Projectile ball) { - if (ball instanceof Snowball && ((Snowball) ball).getItem().getItemMeta() - .getPersistentDataContainer().has(App.main.nskPokeball, PersistentDataType.STRING)) { - return true; - } - return false; - } - - public Boolean isPokeBall(Projectile ball) { - if (ball instanceof Snowball && ((Snowball) ball).getItem().getItemMeta() - .getPersistentDataContainer().has(App.main.nskUsedPokeball, PersistentDataType.STRING)) { - return true; - } - return false; - } - - @EventHandler - public void EmptyBallHitEntity(ProjectileHitEvent e) { - if (!(((Projectile) e.getEntity()).getShooter() instanceof Player)) { - return; - } - if (isEmptyBall(e.getEntity())) { - e.setCancelled(true); - } - if (isEmptyBall(e.getEntity()) && e.getHitEntity() != null) { - - switch (e.getHitEntity().getType()) { - case AXOLOTL: - whichHitEntity(e, EntityType.AXOLOTL, "Axolotl", ((Axolotl) e.getHitEntity()).getVariant(), null, - ((Axolotl) e.getHitEntity()).getAge()); - break; - case SQUID: - whichHitEntity(e, EntityType.SQUID, "Tintenfisch", null, null, null); - break; - case GLOW_SQUID: - whichHitEntity(e, EntityType.GLOW_SQUID, "Leuchttintenfisch", null, null, null); - break; - case BEE: - whichHitEntity(e, EntityType.BEE, "Biene", null, null, ((Bee) e.getHitEntity()).getAge()); - break; - case CHICKEN: - whichHitEntity(e, EntityType.CHICKEN, "Huhn", null, null, ((Chicken) e.getHitEntity()).getAge()); - break; - case COW: - whichHitEntity(e, EntityType.COW, "Kuh", null, null, ((Cow) e.getHitEntity()).getAge()); - break; - case DONKEY: - if (((Donkey) e.getHitEntity()).isCarryingChest()) { - ((Player) e.getEntity().getShooter()) - .sendMessage(helper.R3SMessage(Type.ERROR, - "Dieser Esel hat ein Inventar ausgerüstet!")); - } else { - whichHitEntity(e, EntityType.DONKEY, "Esel", null, null, ((Donkey) e.getHitEntity()).getAge()); - } - break; - case FOX: - whichHitEntity(e, EntityType.FOX, "Fuchs", null, null, ((Fox) e.getHitEntity()).getAge()); - break; - case GOAT: - whichHitEntity(e, EntityType.GOAT, "Ziege", null, null, ((Goat) e.getHitEntity()).getAge()); - break; - case HORSE: - if (((Horse) e.getHitEntity()) instanceof ChestedHorse) { - ((Player) e.getEntity().getShooter()) - .sendMessage(helper.R3SMessage(Type.ERROR, - "Dieses Pferd hat ein Inventar ausgerüstet!")); - } else { - whichHitEntity(e, EntityType.HORSE, "Pferd", ((Horse) e.getHitEntity()).getColor(), - ((Horse) e.getHitEntity()).getStyle(), ((Horse) e.getHitEntity()).getAge()); - } - break; - case LLAMA: - whichHitEntity(e, EntityType.LLAMA, "Lama", null, null, ((Llama) e.getHitEntity()).getAge()); - break; - case MULE: - if (((Mule) e.getHitEntity()).isCarryingChest()) { - ((Player) e.getEntity().getShooter()) - .sendMessage(helper.R3SMessage(Type.ERROR, - "Dieses Maultier hat ein Inventar ausgerüstet!")); - } else { - whichHitEntity(e, EntityType.MULE, "Maultier", null, null, ((Mule) e.getHitEntity()).getAge()); - } - break; - case MOOSHROOM: - whichHitEntity(e, EntityType.MOOSHROOM, "Pilzkuh", null, null, - ((MushroomCow) e.getHitEntity()).getAge()); - break; - case OCELOT: - whichHitEntity(e, EntityType.OCELOT, "Ozelot", null, null, ((Ocelot) e.getHitEntity()).getAge()); - break; - case PANDA: - whichHitEntity(e, EntityType.PANDA, "Panda", null, null, ((Panda) e.getHitEntity()).getAge()); - break; - case PARROT: - whichHitEntity(e, EntityType.PARROT, "Papagei", ((Parrot) e.getHitEntity()).getVariant(), null, - ((Parrot) e.getHitEntity()).getAge()); - break; - case PIG: - whichHitEntity(e, EntityType.PIG, "Schwein", null, null, ((Pig) e.getHitEntity()).getAge()); - break; - case POLAR_BEAR: - whichHitEntity(e, EntityType.POLAR_BEAR, "Eisbär", null, null, - ((PolarBear) e.getHitEntity()).getAge()); - break; - case RABBIT: - whichHitEntity(e, EntityType.RABBIT, "Hase", ((Rabbit) e.getHitEntity()).getRabbitType(), null, - ((Rabbit) e.getHitEntity()).getAge()); - break; - case SHEEP: - whichHitEntity(e, EntityType.SHEEP, "Schaf", ((Sheep) e.getHitEntity()).getColor(), null, - ((Sheep) e.getHitEntity()).getAge()); - break; - case TURTLE: - whichHitEntity(e, EntityType.TURTLE, "Schildkröte", null, null, - ((Turtle) e.getHitEntity()).getAge()); - break; - case FROG: - whichHitEntity(e, EntityType.FROG, "Frosch", ((Frog) e.getHitEntity()).getVariant(), null, - ((Frog) e.getHitEntity()).getAge()); - break; - case ALLAY: - whichHitEntity(e, EntityType.ALLAY, "Hilfsgeist", null, null, null); - break; - case WOLF: - if (!((Wolf) e.getHitEntity()).isTamed()) { - whichHitEntity(e, EntityType.WOLF, "Wolf", null, null, ((Wolf) e.getHitEntity()).getAge()); - } else { - ((Player) e.getEntity().getShooter()) - .sendMessage(helper.R3SMessage(Type.ERROR, - "Wer versucht, den Hund eines anderen zu stehlen, ist ein gemeiner Dieb!")); - } - break; - case CAT: - if (!((Cat) e.getHitEntity()).isTamed()) { - whichHitEntity(e, EntityType.CAT, "Katze", ((Cat) e.getHitEntity()).getCatType(), null, - ((Cat) e.getHitEntity()).getAge()); - } else { - ((Player) e.getEntity().getShooter()).sendMessage(helper.R3SMessage(Type.ERROR, - "Wer versucht, die Katze eines anderen zu stehlen, ist ein gemeiner Dieb!")); - } - break; - case ARMADILLO: - whichHitEntity(e, EntityType.ARMADILLO, "Gürteltier", null, null, ((Armadillo) e.getHitEntity()).getAge()); - break; - default: - break; - } - e.getEntity().remove(); - } - App.main.isThrownHM.put((Player) e.getEntity().getShooter(), false); - - } - - @EventHandler - public void PokeBallHitEntity(ProjectileHitEvent e) { - if (!(((Projectile) e.getEntity()).getShooter() instanceof Player)) { - return; - } - if (isPokeBall(e.getEntity())) { - e.setCancelled(true); - } - if (isPokeBall(e.getEntity()) - && e.getHitEntity() == null) { - - Location loc = new Location(e.getHitBlock().getWorld(), e.getHitBlock().getX(), e.getHitBlock().getY(), - e.getHitBlock().getZ()); - loc.setY(e.getHitBlock().getLocation().getY() + 1); - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Axolotl")) { - Axolotl a = e.getEntity().getWorld().spawn(loc, Axolotl.class); - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { - case 0: - a.setVariant(Variant.BLUE); - break; - case 1: - a.setVariant(Variant.CYAN); - break; - case 2: - a.setVariant(Variant.GOLD); - break; - case 3: - a.setVariant(Variant.LUCY); - break; - case 4: - a.setVariant(Variant.WILD); - break; - } - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Tintenfisch")) { - e.getEntity().getWorld().spawn(loc, Squid.class); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Leuchttintenfisch")) { - e.getEntity().getWorld().spawn(loc, GlowSquid.class); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Biene")) { - Bee bee = e.getEntity().getWorld().spawn(loc, Bee.class); - bee.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Huhn")) { - Chicken chicken = e.getEntity().getWorld().spawn(loc, Chicken.class); - chicken.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Kuh")) { - Cow cow = e.getEntity().getWorld().spawn(loc, Cow.class); - cow.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Esel")) { - Donkey donkey = e.getEntity().getWorld().spawn(loc, Donkey.class); - donkey.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Fuchs")) { - Fox fox = e.getEntity().getWorld().spawn(loc, Fox.class); - fox.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Ziege")) { - Goat goat = e.getEntity().getWorld().spawn(loc, Goat.class); - goat.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Pferd")) { - Horse h = e.getEntity().getWorld().spawn(loc, Horse.class); - h.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { - case 0: - h.setColor(Color.BLACK); - break; - case 1: - h.setColor(Color.BROWN); - break; - case 2: - h.setColor(Color.CHESTNUT); - break; - case 3: - h.setColor(Color.CREAMY); - break; - case 4: - h.setColor(Color.DARK_BROWN); - break; - case 5: - h.setColor(Color.GRAY); - break; - case 6: - h.setColor(Color.WHITE); - break; - } - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntStylePokeball, PersistentDataType.INTEGER)) { - case 0: - h.setStyle(Style.BLACK_DOTS); - break; - case 1: - h.setStyle(Style.NONE); - break; - case 2: - h.setStyle(Style.WHITE); - break; - case 3: - h.setStyle(Style.WHITEFIELD); - break; - case 4: - h.setStyle(Style.WHITE_DOTS); - break; - } - - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Lama")) { - Llama llama = e.getEntity().getWorld().spawn(loc, Llama.class); - llama.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Maultier")) { - Mule mule = e.getEntity().getWorld().spawn(loc, Mule.class); - mule.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Pilzkuh")) { - MushroomCow mCow = e.getEntity().getWorld().spawn(loc, MushroomCow.class); - mCow.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Ozelot")) { - Ocelot ocelot = e.getEntity().getWorld().spawn(loc, Ocelot.class); - ocelot.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Panda")) { - Panda panda = e.getEntity().getWorld().spawn(loc, Panda.class); - panda.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Papagei")) { - Parrot p = e.getEntity().getWorld().spawn(loc, Parrot.class); - p.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { - case 0: - p.setVariant(org.bukkit.entity.Parrot.Variant.BLUE); - break; - case 1: - p.setVariant(org.bukkit.entity.Parrot.Variant.CYAN); - break; - case 2: - p.setVariant(org.bukkit.entity.Parrot.Variant.GRAY); - break; - case 3: - p.setVariant(org.bukkit.entity.Parrot.Variant.GREEN); - break; - case 4: - p.setVariant(org.bukkit.entity.Parrot.Variant.RED); - break; - } - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Schwein")) { - Pig pig = e.getEntity().getWorld().spawn(loc, Pig.class); - pig.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Eisbär")) { - PolarBear polarBear = e.getEntity().getWorld().spawn(loc, PolarBear.class); - polarBear.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Hase")) { - Rabbit r = e.getEntity().getWorld().spawn(loc, Rabbit.class); - r.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { - case 0: - r.setRabbitType(Rabbit.Type.BLACK); - break; - case 1: - r.setRabbitType(Rabbit.Type.BLACK_AND_WHITE); - break; - case 2: - r.setRabbitType(Rabbit.Type.BROWN); - break; - case 3: - r.setRabbitType(Rabbit.Type.GOLD); - break; - case 4: - r.setRabbitType(Rabbit.Type.SALT_AND_PEPPER); - break; - case 5: - r.setRabbitType(Rabbit.Type.THE_KILLER_BUNNY); - break; - case 6: - r.setRabbitType(Rabbit.Type.WHITE); - break; - } - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Schaf")) { - Sheep s = e.getEntity().getWorld().spawn(loc, Sheep.class); - s.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { - case 0: - s.setColor(DyeColor.WHITE); - break; - case 1: - s.setColor(DyeColor.BLACK); - break; - case 2: - s.setColor(DyeColor.BLUE); - break; - case 3: - s.setColor(DyeColor.BROWN); - break; - case 4: - s.setColor(DyeColor.CYAN); - break; - case 5: - s.setColor(DyeColor.GRAY); - break; - case 6: - s.setColor(DyeColor.GREEN); - break; - case 7: - s.setColor(DyeColor.LIGHT_BLUE); - break; - case 8: - s.setColor(DyeColor.LIGHT_GRAY); - break; - case 9: - s.setColor(DyeColor.LIME); - break; - case 10: - s.setColor(DyeColor.MAGENTA); - break; - case 11: - s.setColor(DyeColor.ORANGE); - break; - case 12: - s.setColor(DyeColor.PINK); - break; - case 13: - s.setColor(DyeColor.PURPLE); - break; - case 14: - s.setColor(DyeColor.RED); - break; - case 15: - s.setColor(DyeColor.YELLOW); - break; - - } - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Schildkröte")) { - Turtle turtle = e.getEntity().getWorld().spawn(loc, Turtle.class); - turtle.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Frosch")) { - Frog f = e.getEntity().getWorld().spawn(loc, Frog.class); - f.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { - case 0: - f.setVariant(org.bukkit.entity.Frog.Variant.COLD); - break; - case 1: - f.setVariant(org.bukkit.entity.Frog.Variant.TEMPERATE); - break; - case 2: - f.setVariant(org.bukkit.entity.Frog.Variant.WARM); - break; - } - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Hilfsgeist")) { - e.getEntity().getWorld().spawn(loc, Allay.class); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Wolf")) { - Wolf wolf = e.getEntity().getWorld().spawn(loc, Wolf.class); - wolf.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Katze")) { - Cat c = e.getEntity().getWorld().spawn(loc, Cat.class); - c.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { - case 0: - c.setCatType(Cat.Type.ALL_BLACK); - break; - case 1: - c.setCatType(Cat.Type.BLACK); - break; - case 2: - c.setCatType(Cat.Type.BRITISH_SHORTHAIR); - break; - case 3: - c.setCatType(Cat.Type.CALICO); - break; - case 4: - c.setCatType(Cat.Type.JELLIE); - break; - case 5: - c.setCatType(Cat.Type.PERSIAN); - break; - case 6: - c.setCatType(Cat.Type.RAGDOLL); - break; - case 7: - c.setCatType(Cat.Type.RED); - break; - case 8: - c.setCatType(Cat.Type.SIAMESE); - break; - case 9: - c.setCatType(Cat.Type.TABBY); - break; - case 10: - c.setCatType(Cat.Type.WHITE); - break; - } - - } - if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Gürteltier")) { - Armadillo armadillo = e.getEntity().getWorld().spawn(loc, Armadillo.class); - armadillo.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() - .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); - } - e.getEntity().getWorld().spawnParticle(Particle.FLASH, loc, 1); - App.main.isThrownHM.put((Player) e.getEntity().getShooter(), false); - - } - } - - private void whichHitEntity(ProjectileHitEvent e, EntityType et, String entityName, Object variant, Object type, - Object age) { - - e.setCancelled(true); - Location mobLoc = e.getHitEntity().getLocation(); - e.getHitEntity().getWorld().spawnParticle(Particle.FLASH, mobLoc, 1); - e.getHitEntity().remove(); - App.main.usedPokeball = App.main.newPokeball.clone(); - ItemMeta usedPBm = App.main.usedPokeball.getItemMeta(); - List lore = new ArrayList(); - TextComponent tLore; - usedPBm.getPersistentDataContainer().remove(App.main.nskPokeball); - usedPBm.getPersistentDataContainer().set(App.main.nskUsedPokeball, PersistentDataType.STRING, - "R3S_UsedPokeball"); - usedPBm.getPersistentDataContainer().set(App.main.nskEntityPokeball, PersistentDataType.STRING, entityName); - if (age != null) { - usedPBm.getPersistentDataContainer().set(App.main.nskAgePokeball, - PersistentDataType.INTEGER, - (int) age); - } - if (variant != null) { - if (variant instanceof DyeColor) { - switch ((DyeColor) variant) { - case WHITE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 0); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); - break; - case BLACK: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 1); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); - break; - case BLUE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 2); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLUE + "Blau")); - break; - case BROWN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 3); - tLore = Component.text(ChatColor.WHITE + "Farbe: ").append(Component.text("Braun") - .decoration(TextDecoration.ITALIC, false).color(TextColor.fromHexString("#74492A"))); - lore.add(tLore); - break; - case CYAN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 4); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Türkis", TextColor.fromHexString("#36ABCE")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case GRAY: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 5); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); - break; - case GREEN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 6); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GREEN + "Grün")); - break; - case LIGHT_BLUE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 7); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Hellblau", TextColor.fromHexString("#33A8CE")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case LIGHT_GRAY: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 8); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Hellgrau", TextColor.fromHexString("#93948B")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case LIME: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 9); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Hellgrün", TextColor.fromHexString("#6FB719")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case MAGENTA: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 10); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Magenta", TextColor.fromHexString("#CE55C4")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case ORANGE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 11); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Orange", TextColor.fromHexString("#F07413")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case PINK: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 12); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Rosa", TextColor.fromHexString("#EA8EAA")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case PURPLE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 13); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.LIGHT_PURPLE + "Lila")); - break; - case RED: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 14); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.RED + "Rot")); - break; - case YELLOW: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, - 15); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.YELLOW + "Gelb")); - break; - } - - } else if (variant instanceof Variant) { - switch (((Variant) variant)) { - case BLUE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 0); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLUE + "Blau")); - break; - case CYAN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 1); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Türkis", TextColor.fromHexString("#36ABCE")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case GOLD: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 2); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GOLD + "Gold")); - break; - case LUCY: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 3); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Rosa", TextColor.fromHexString("#EA8EAA")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case WILD: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 4); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Braun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - - } - } else if (variant instanceof org.bukkit.entity.Frog.Variant) { - switch (((org.bukkit.entity.Frog.Variant) variant).toString()) { - case "COLD": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 0); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GREEN + "Grün")); - break; - case "TEMPERATE": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 1); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Orange", TextColor.fromHexString("#F07413")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case "WARM": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 2); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); - break; - default: - break; - } - } else if (variant instanceof org.bukkit.entity.Parrot.Variant) { - switch ((org.bukkit.entity.Parrot.Variant) variant) { - case BLUE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 0); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLUE + "BLAU")); - break; - case CYAN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 1); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Türkis", TextColor.fromHexString("#36ABCE")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case GRAY: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 2); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); - break; - case GREEN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 3); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GREEN + "Grün")); - break; - case RED: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 4); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.RED + "Rot")); - break; - - } - } else if (variant instanceof Rabbit.Type) { - switch ((Rabbit.Type) variant) { - case BLACK: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 0); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); - break; - case BLACK_AND_WHITE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 1); - lore.add(Component.text( - ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz" + ChatColor.WHITE + "weiß")); - break; - case BROWN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 2); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Braun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case GOLD: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 3); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GOLD + "Gold")); - break; - case SALT_AND_PEPPER: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 4); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); - break; - case THE_KILLER_BUNNY: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 5); - break; - case WHITE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 6); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); - break; - } - } else if (variant instanceof Cat.Type) { - switch (((Cat.Type) variant).toString()) { - case "ALL_BLACK": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 0); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); - break; - case "BLACK": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 1); - lore.add(Component.text( - ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz" + ChatColor.WHITE + "weiß")); - break; - case "BRITISH_SHORTHAIR": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 2); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); - break; - case "CALICO": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 3); - - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Orange", TextColor.fromHexString("#F07413")) - .decoration(TextDecoration.ITALIC, false)) - .append(Component.text(ChatColor.WHITE + "weiß").decoration(TextDecoration.ITALIC, - false)) - .append(Component.text("braun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - - break; - case "JELLIE": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 4); - lore.add(Component.text( - ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau" + ChatColor.WHITE + "weiß")); - break; - case "PERSIAN": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 5); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Creme", TextColor.fromHexString("#FCDCB0")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case "RAGDOLL": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 6); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Braun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)) - .append(Component.text(ChatColor.WHITE + "weiß").decoration(TextDecoration.ITALIC, - false)); - lore.add(tLore); - break; - case "RED": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 7); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Orange", TextColor.fromHexString("#F07413")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case "SIAMESE": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 8); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text(ChatColor.GRAY + "Grau").decoration(TextDecoration.ITALIC, - false)) - .append(Component.text("braun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case "TABBY": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 9); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Braun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case "WHITE": - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 10); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); - break; - default: - break; - } - } else if (variant instanceof Horse.Color) { - switch ((Horse.Color) variant) { - case BLACK: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 0); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); - break; - case BROWN: - - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 1); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Braun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - - break; - case CHESTNUT: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 2); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Orange", TextColor.fromHexString("#F07413")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case CREAMY: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 3); - - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Creme", TextColor.fromHexString("#FCDCB0")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case DARK_BROWN: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 4); - tLore = Component.text(ChatColor.WHITE + "Farbe: ") - .append(Component.text("Dunkelbraun", TextColor.fromHexString("#74492A")) - .decoration(TextDecoration.ITALIC, false)); - lore.add(tLore); - break; - case GRAY: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 5); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); - break; - case WHITE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, - PersistentDataType.INTEGER, 6); - lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); - break; - } - - TextComponent tmLore; - switch ((Horse.Style) type) { - case BLACK_DOTS: - usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, - PersistentDataType.INTEGER, 0); - tmLore = Component.text(ChatColor.WHITE + "Muster: ") - .append(Component.text(ChatColor.BLACK + "Schwarz ")) - .decoration(TextDecoration.ITALIC, false) - .append(Component.text(ChatColor.WHITE + "gepunktet")) - .decoration(TextDecoration.ITALIC, false); - lore.add(tmLore); - break; - case NONE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, - PersistentDataType.INTEGER, 1); - tmLore = Component.text(ChatColor.WHITE + "Muster: ") - .append(Component.text(ChatColor.WHITE + "Keines")) - .decoration(TextDecoration.ITALIC, false); - lore.add(tmLore); - break; - case WHITE: - usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, - PersistentDataType.INTEGER, 2); - tmLore = Component.text(ChatColor.WHITE + "Muster: Weiße Beine") - .decoration(TextDecoration.ITALIC, false); - lore.add(tmLore); - break; - case WHITEFIELD: - usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, - PersistentDataType.INTEGER, 3); - tmLore = Component.text(ChatColor.WHITE + "Muster: Wolken").decoration(TextDecoration.ITALIC, - false); - lore.add(tmLore); - - break; - case WHITE_DOTS: - usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, - PersistentDataType.INTEGER, 4); - tmLore = Component.text(ChatColor.WHITE + "Muster: Weiß Gepunktet") - .decoration(TextDecoration.ITALIC, false); - lore.add(tmLore); - break; - } - } - } - - usedPBm.displayName(Component.translatable(ChatColor.WHITE + entityName + " - Pokéball")); - usedPBm.lore(lore); - App.main.usedPokeball.setItemMeta(usedPBm); - App.main.getServer().getWorlds().get(0).dropItem(mobLoc, App.main.usedPokeball); - - } - +package de.hessj.environmentex; + +import java.util.ArrayList; +import java.util.List; +import org.bukkit.DyeColor; +import org.bukkit.Location; +import org.bukkit.Particle; +import org.bukkit.Sound; +import org.bukkit.block.data.type.Fence; +import org.bukkit.block.data.type.Stairs; +import org.bukkit.entity.Allay; +import org.bukkit.entity.Armadillo; +import org.bukkit.entity.Axolotl; +import org.bukkit.entity.Bee; +import org.bukkit.entity.Cat; +import org.bukkit.entity.ChestedHorse; +import org.bukkit.entity.Chicken; +import org.bukkit.entity.Cow; +import org.bukkit.entity.Donkey; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Fox; +import org.bukkit.entity.Frog; +import org.bukkit.entity.GlowSquid; +import org.bukkit.entity.Goat; +import org.bukkit.entity.Horse; +import org.bukkit.entity.Llama; +import org.bukkit.entity.Mule; +import org.bukkit.entity.MushroomCow; +import org.bukkit.entity.Ocelot; +import org.bukkit.entity.Panda; +import org.bukkit.entity.Parrot; +import org.bukkit.entity.Pig; +import org.bukkit.entity.Player; +import org.bukkit.entity.PolarBear; +import org.bukkit.entity.Projectile; +import org.bukkit.entity.Rabbit; +import org.bukkit.entity.Sheep; +import org.bukkit.entity.Snowball; +import org.bukkit.entity.Squid; +import org.bukkit.entity.Turtle; +import org.bukkit.entity.Wolf; +import org.bukkit.entity.Axolotl.Variant; +import org.bukkit.entity.Horse.Color; +import org.bukkit.entity.Horse.Style; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataType; +import de.hessj.helper.Helper.Type; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.format.TextColor; +import net.kyori.adventure.text.format.TextDecoration; +import net.md_5.bungee.api.ChatColor; + +public class Pokeballs implements Listener { + public static de.hessj.helper.Helper helper = new de.hessj.helper.Helper(); + + @EventHandler + public void craftBlocker(PrepareItemCraftEvent evt) { + if (evt.getRecipe() != null && evt.getRecipe().getResult() != null) { + if (!evt.getRecipe().getResult().equals(App.main.newPokeball)) { + if (evt.getInventory().containsAtLeast(App.main.newPokeball, 1) + || evt.getInventory().containsAtLeast(App.main.usedPokeball, 1)) { + evt.getInventory().setResult(null); + } + } + + } + } + + @EventHandler + public void onLogin(PlayerJoinEvent e) { + App.main.isThrownHM.put(e.getPlayer(), false); + e.getPlayer().discoverRecipe(App.main.nskPokeball); + } + + @EventHandler + public void onEmptyBallThrow(PlayerInteractEvent e) { + if (e.getPlayer().getInventory().getItemInMainHand() != null + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta() != null && e.getPlayer() + .getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() != null) { + if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nskPokeball, PersistentDataType.STRING)) { + + if (e.getAction() == Action.LEFT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_AIR + || e.getAction() == Action.PHYSICAL) { + return; + } + + if (e.getClickedBlock() != null && e.getClickedBlock().getBlockData() != null + && (e.getClickedBlock().getBlockData() instanceof Stairs + || e.getClickedBlock().getBlockData() instanceof Fence)) { + } else if (e.getClickedBlock() != null && helper.isInteractable(e.getClickedBlock())) { + return; + } + + e.setCancelled(true); + if (!App.main.isThrownHM.get(e.getPlayer())) { + App.main.isThrownHM.put(e.getPlayer(), true); + Snowball b = e.getPlayer().launchProjectile(Snowball.class); + b.customName(Component.text(ChatColor.WHITE + "Pokéball")); + b.setItem(App.main.newPokeball); + e.getPlayer().getWorld().playSound(e.getPlayer().getLocation(), Sound.ENTITY_SNOWBALL_THROW, 1, + 1); + + e.getPlayer().getInventory().getItemInMainHand().subtract(1); + } else { + e.getPlayer().sendMessage(helper.R3SMessage(Type.ERROR, + "[Pokéball] Du kannst nur einen Pokéball nach dem anderen werfen!")); + + } + } + + } + } + + @EventHandler + public void onUsedBallThrow(PlayerInteractEvent e) { + if (e.getPlayer().getInventory().getItemInMainHand() != null + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta() != null && e.getPlayer() + .getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() != null) { + if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nskUsedPokeball, PersistentDataType.STRING)) { + + if (e.getAction() == Action.LEFT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_AIR + || e.getAction() == Action.PHYSICAL) { + return; + } + + if (e.getClickedBlock() != null && e.getClickedBlock().getBlockData() != null + && (e.getClickedBlock().getBlockData() instanceof Stairs + || e.getClickedBlock().getBlockData() instanceof Fence)) { + } else if (e.getClickedBlock() != null && helper.isInteractable(e.getClickedBlock())) { + return; + } + + e.setCancelled(true); + + if (!App.main.isThrownHM.get(e.getPlayer())) { + App.main.isThrownHM.put(e.getPlayer(), true); + + Snowball b = e.getPlayer().launchProjectile(Snowball.class); + String enti = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() + .getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING); + Integer variant = null; + Integer type = null; + Integer age = null; + + if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta() + .getPersistentDataContainer().has(App.main.nskEntVariantPokeball)) { + variant = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() + .getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER); + } + if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nskEntStylePokeball)) { + type = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() + .getPersistentDataContainer() + .get(App.main.nskEntStylePokeball, PersistentDataType.INTEGER); + } + if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nskAgePokeball)) { + age = e.getPlayer().getInventory().getItemInMainHand().getItemMeta() + .getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER); + } + + App.main.usedPokeball = App.main.newPokeball.clone(); + ItemMeta usedPBm = App.main.usedPokeball.getItemMeta(); + usedPBm.getPersistentDataContainer().remove(App.main.nskPokeball); + usedPBm.getPersistentDataContainer().set(App.main.nskUsedPokeball, PersistentDataType.STRING, + "R3S_UsedPokeball"); + usedPBm.getPersistentDataContainer().set(App.main.nskEntityPokeball, PersistentDataType.STRING, + enti); + if (variant != null) { + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + variant); + } + if (type != null) { + usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, + PersistentDataType.INTEGER, + type); + } + if (age != null) { + usedPBm.getPersistentDataContainer().set(App.main.nskAgePokeball, + PersistentDataType.INTEGER, + age); + } + usedPBm.displayName(Component.translatable(ChatColor.WHITE + enti + " - Pokéball")); + App.main.usedPokeball.setItemMeta(usedPBm); + b.setItem(App.main.usedPokeball); + + e.getPlayer().getWorld().playSound(e.getPlayer().getLocation(), Sound.ENTITY_SNOWBALL_THROW, 1, + 1); + + e.getPlayer().getInventory().getItemInMainHand().subtract(1); + } else { + e.getPlayer().sendMessage(helper.R3SMessage(Type.ERROR, + "[Pokéball] Du kannst nur einen Pokéball nach dem anderen werfen!")); + + } + } + + } + } + + public Boolean isEmptyBall(Projectile ball) { + if (ball instanceof Snowball && ((Snowball) ball).getItem().getItemMeta() + .getPersistentDataContainer().has(App.main.nskPokeball, PersistentDataType.STRING)) { + return true; + } + return false; + } + + public Boolean isPokeBall(Projectile ball) { + if (ball instanceof Snowball && ((Snowball) ball).getItem().getItemMeta() + .getPersistentDataContainer().has(App.main.nskUsedPokeball, PersistentDataType.STRING)) { + return true; + } + return false; + } + + @EventHandler + public void EmptyBallHitEntity(ProjectileHitEvent e) { + if (!(((Projectile) e.getEntity()).getShooter() instanceof Player)) { + return; + } + if (isEmptyBall(e.getEntity())) { + e.setCancelled(true); + } + if (isEmptyBall(e.getEntity()) && e.getHitEntity() != null) { + + switch (e.getHitEntity().getType()) { + case AXOLOTL: + whichHitEntity(e, EntityType.AXOLOTL, "Axolotl", ((Axolotl) e.getHitEntity()).getVariant(), null, + ((Axolotl) e.getHitEntity()).getAge()); + break; + case SQUID: + whichHitEntity(e, EntityType.SQUID, "Tintenfisch", null, null, null); + break; + case GLOW_SQUID: + whichHitEntity(e, EntityType.GLOW_SQUID, "Leuchttintenfisch", null, null, null); + break; + case BEE: + whichHitEntity(e, EntityType.BEE, "Biene", null, null, ((Bee) e.getHitEntity()).getAge()); + break; + case CHICKEN: + whichHitEntity(e, EntityType.CHICKEN, "Huhn", null, null, ((Chicken) e.getHitEntity()).getAge()); + break; + case COW: + whichHitEntity(e, EntityType.COW, "Kuh", null, null, ((Cow) e.getHitEntity()).getAge()); + break; + case DONKEY: + if (((Donkey) e.getHitEntity()).isCarryingChest()) { + ((Player) e.getEntity().getShooter()) + .sendMessage(helper.R3SMessage(Type.ERROR, + "Dieser Esel hat ein Inventar ausgerüstet!")); + } else { + whichHitEntity(e, EntityType.DONKEY, "Esel", null, null, ((Donkey) e.getHitEntity()).getAge()); + } + break; + case FOX: + whichHitEntity(e, EntityType.FOX, "Fuchs", null, null, ((Fox) e.getHitEntity()).getAge()); + break; + case GOAT: + whichHitEntity(e, EntityType.GOAT, "Ziege", null, null, ((Goat) e.getHitEntity()).getAge()); + break; + case HORSE: + if (((Horse) e.getHitEntity()) instanceof ChestedHorse) { + ((Player) e.getEntity().getShooter()) + .sendMessage(helper.R3SMessage(Type.ERROR, + "Dieses Pferd hat ein Inventar ausgerüstet!")); + } else { + whichHitEntity(e, EntityType.HORSE, "Pferd", ((Horse) e.getHitEntity()).getColor(), + ((Horse) e.getHitEntity()).getStyle(), ((Horse) e.getHitEntity()).getAge()); + } + break; + case LLAMA: + whichHitEntity(e, EntityType.LLAMA, "Lama", null, null, ((Llama) e.getHitEntity()).getAge()); + break; + case MULE: + if (((Mule) e.getHitEntity()).isCarryingChest()) { + ((Player) e.getEntity().getShooter()) + .sendMessage(helper.R3SMessage(Type.ERROR, + "Dieses Maultier hat ein Inventar ausgerüstet!")); + } else { + whichHitEntity(e, EntityType.MULE, "Maultier", null, null, ((Mule) e.getHitEntity()).getAge()); + } + break; + case MOOSHROOM: + whichHitEntity(e, EntityType.MOOSHROOM, "Pilzkuh", null, null, + ((MushroomCow) e.getHitEntity()).getAge()); + break; + case OCELOT: + whichHitEntity(e, EntityType.OCELOT, "Ozelot", null, null, ((Ocelot) e.getHitEntity()).getAge()); + break; + case PANDA: + whichHitEntity(e, EntityType.PANDA, "Panda", null, null, ((Panda) e.getHitEntity()).getAge()); + break; + case PARROT: + whichHitEntity(e, EntityType.PARROT, "Papagei", ((Parrot) e.getHitEntity()).getVariant(), null, + ((Parrot) e.getHitEntity()).getAge()); + break; + case PIG: + whichHitEntity(e, EntityType.PIG, "Schwein", null, null, ((Pig) e.getHitEntity()).getAge()); + break; + case POLAR_BEAR: + whichHitEntity(e, EntityType.POLAR_BEAR, "Eisbär", null, null, + ((PolarBear) e.getHitEntity()).getAge()); + break; + case RABBIT: + whichHitEntity(e, EntityType.RABBIT, "Hase", ((Rabbit) e.getHitEntity()).getRabbitType(), null, + ((Rabbit) e.getHitEntity()).getAge()); + break; + case SHEEP: + whichHitEntity(e, EntityType.SHEEP, "Schaf", ((Sheep) e.getHitEntity()).getColor(), null, + ((Sheep) e.getHitEntity()).getAge()); + break; + case TURTLE: + whichHitEntity(e, EntityType.TURTLE, "Schildkröte", null, null, + ((Turtle) e.getHitEntity()).getAge()); + break; + case FROG: + whichHitEntity(e, EntityType.FROG, "Frosch", ((Frog) e.getHitEntity()).getVariant(), null, + ((Frog) e.getHitEntity()).getAge()); + break; + case ALLAY: + whichHitEntity(e, EntityType.ALLAY, "Hilfsgeist", null, null, null); + break; + case WOLF: + if (!((Wolf) e.getHitEntity()).isTamed()) { + whichHitEntity(e, EntityType.WOLF, "Wolf", null, null, ((Wolf) e.getHitEntity()).getAge()); + } else { + ((Player) e.getEntity().getShooter()) + .sendMessage(helper.R3SMessage(Type.ERROR, + "Wer versucht, den Hund eines anderen zu stehlen, ist ein gemeiner Dieb!")); + } + break; + case CAT: + if (!((Cat) e.getHitEntity()).isTamed()) { + whichHitEntity(e, EntityType.CAT, "Katze", ((Cat) e.getHitEntity()).getCatType(), null, + ((Cat) e.getHitEntity()).getAge()); + } else { + ((Player) e.getEntity().getShooter()).sendMessage(helper.R3SMessage(Type.ERROR, + "Wer versucht, die Katze eines anderen zu stehlen, ist ein gemeiner Dieb!")); + } + break; + case ARMADILLO: + whichHitEntity(e, EntityType.ARMADILLO, "Gürteltier", null, null, ((Armadillo) e.getHitEntity()).getAge()); + break; + default: + break; + } + e.getEntity().remove(); + } + App.main.isThrownHM.put((Player) e.getEntity().getShooter(), false); + + } + + @EventHandler + public void PokeBallHitEntity(ProjectileHitEvent e) { + if (!(((Projectile) e.getEntity()).getShooter() instanceof Player)) { + return; + } + if (isPokeBall(e.getEntity())) { + e.setCancelled(true); + } + if (isPokeBall(e.getEntity()) + && e.getHitEntity() == null) { + + Location loc = new Location(e.getHitBlock().getWorld(), e.getHitBlock().getX(), e.getHitBlock().getY(), + e.getHitBlock().getZ()); + loc.setY(e.getHitBlock().getLocation().getY() + 1); + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Axolotl")) { + Axolotl a = e.getEntity().getWorld().spawn(loc, Axolotl.class); + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { + case 0: + a.setVariant(Variant.BLUE); + break; + case 1: + a.setVariant(Variant.CYAN); + break; + case 2: + a.setVariant(Variant.GOLD); + break; + case 3: + a.setVariant(Variant.LUCY); + break; + case 4: + a.setVariant(Variant.WILD); + break; + } + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Tintenfisch")) { + e.getEntity().getWorld().spawn(loc, Squid.class); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Leuchttintenfisch")) { + e.getEntity().getWorld().spawn(loc, GlowSquid.class); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Biene")) { + Bee bee = e.getEntity().getWorld().spawn(loc, Bee.class); + bee.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Huhn")) { + Chicken chicken = e.getEntity().getWorld().spawn(loc, Chicken.class); + chicken.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Kuh")) { + Cow cow = e.getEntity().getWorld().spawn(loc, Cow.class); + cow.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Esel")) { + Donkey donkey = e.getEntity().getWorld().spawn(loc, Donkey.class); + donkey.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Fuchs")) { + Fox fox = e.getEntity().getWorld().spawn(loc, Fox.class); + fox.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Ziege")) { + Goat goat = e.getEntity().getWorld().spawn(loc, Goat.class); + goat.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Pferd")) { + Horse h = e.getEntity().getWorld().spawn(loc, Horse.class); + h.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { + case 0: + h.setColor(Color.BLACK); + break; + case 1: + h.setColor(Color.BROWN); + break; + case 2: + h.setColor(Color.CHESTNUT); + break; + case 3: + h.setColor(Color.CREAMY); + break; + case 4: + h.setColor(Color.DARK_BROWN); + break; + case 5: + h.setColor(Color.GRAY); + break; + case 6: + h.setColor(Color.WHITE); + break; + } + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntStylePokeball, PersistentDataType.INTEGER)) { + case 0: + h.setStyle(Style.BLACK_DOTS); + break; + case 1: + h.setStyle(Style.NONE); + break; + case 2: + h.setStyle(Style.WHITE); + break; + case 3: + h.setStyle(Style.WHITEFIELD); + break; + case 4: + h.setStyle(Style.WHITE_DOTS); + break; + } + + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Lama")) { + Llama llama = e.getEntity().getWorld().spawn(loc, Llama.class); + llama.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Maultier")) { + Mule mule = e.getEntity().getWorld().spawn(loc, Mule.class); + mule.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Pilzkuh")) { + MushroomCow mCow = e.getEntity().getWorld().spawn(loc, MushroomCow.class); + mCow.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Ozelot")) { + Ocelot ocelot = e.getEntity().getWorld().spawn(loc, Ocelot.class); + ocelot.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Panda")) { + Panda panda = e.getEntity().getWorld().spawn(loc, Panda.class); + panda.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Papagei")) { + Parrot p = e.getEntity().getWorld().spawn(loc, Parrot.class); + p.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { + case 0: + p.setVariant(org.bukkit.entity.Parrot.Variant.BLUE); + break; + case 1: + p.setVariant(org.bukkit.entity.Parrot.Variant.CYAN); + break; + case 2: + p.setVariant(org.bukkit.entity.Parrot.Variant.GRAY); + break; + case 3: + p.setVariant(org.bukkit.entity.Parrot.Variant.GREEN); + break; + case 4: + p.setVariant(org.bukkit.entity.Parrot.Variant.RED); + break; + } + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Schwein")) { + Pig pig = e.getEntity().getWorld().spawn(loc, Pig.class); + pig.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Eisbär")) { + PolarBear polarBear = e.getEntity().getWorld().spawn(loc, PolarBear.class); + polarBear.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Hase")) { + Rabbit r = e.getEntity().getWorld().spawn(loc, Rabbit.class); + r.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { + case 0: + r.setRabbitType(Rabbit.Type.BLACK); + break; + case 1: + r.setRabbitType(Rabbit.Type.BLACK_AND_WHITE); + break; + case 2: + r.setRabbitType(Rabbit.Type.BROWN); + break; + case 3: + r.setRabbitType(Rabbit.Type.GOLD); + break; + case 4: + r.setRabbitType(Rabbit.Type.SALT_AND_PEPPER); + break; + case 5: + r.setRabbitType(Rabbit.Type.THE_KILLER_BUNNY); + break; + case 6: + r.setRabbitType(Rabbit.Type.WHITE); + break; + } + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Schaf")) { + Sheep s = e.getEntity().getWorld().spawn(loc, Sheep.class); + s.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { + case 0: + s.setColor(DyeColor.WHITE); + break; + case 1: + s.setColor(DyeColor.BLACK); + break; + case 2: + s.setColor(DyeColor.BLUE); + break; + case 3: + s.setColor(DyeColor.BROWN); + break; + case 4: + s.setColor(DyeColor.CYAN); + break; + case 5: + s.setColor(DyeColor.GRAY); + break; + case 6: + s.setColor(DyeColor.GREEN); + break; + case 7: + s.setColor(DyeColor.LIGHT_BLUE); + break; + case 8: + s.setColor(DyeColor.LIGHT_GRAY); + break; + case 9: + s.setColor(DyeColor.LIME); + break; + case 10: + s.setColor(DyeColor.MAGENTA); + break; + case 11: + s.setColor(DyeColor.ORANGE); + break; + case 12: + s.setColor(DyeColor.PINK); + break; + case 13: + s.setColor(DyeColor.PURPLE); + break; + case 14: + s.setColor(DyeColor.RED); + break; + case 15: + s.setColor(DyeColor.YELLOW); + break; + + } + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Schildkröte")) { + Turtle turtle = e.getEntity().getWorld().spawn(loc, Turtle.class); + turtle.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Frosch")) { + Frog f = e.getEntity().getWorld().spawn(loc, Frog.class); + f.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { + case 0: + f.setVariant(org.bukkit.entity.Frog.Variant.COLD); + break; + case 1: + f.setVariant(org.bukkit.entity.Frog.Variant.TEMPERATE); + break; + case 2: + f.setVariant(org.bukkit.entity.Frog.Variant.WARM); + break; + } + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Hilfsgeist")) { + e.getEntity().getWorld().spawn(loc, Allay.class); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Wolf")) { + Wolf wolf = e.getEntity().getWorld().spawn(loc, Wolf.class); + wolf.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Katze")) { + Cat c = e.getEntity().getWorld().spawn(loc, Cat.class); + c.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + switch (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntVariantPokeball, PersistentDataType.INTEGER)) { + case 0: + c.setCatType(Cat.Type.ALL_BLACK); + break; + case 1: + c.setCatType(Cat.Type.BLACK); + break; + case 2: + c.setCatType(Cat.Type.BRITISH_SHORTHAIR); + break; + case 3: + c.setCatType(Cat.Type.CALICO); + break; + case 4: + c.setCatType(Cat.Type.JELLIE); + break; + case 5: + c.setCatType(Cat.Type.PERSIAN); + break; + case 6: + c.setCatType(Cat.Type.RAGDOLL); + break; + case 7: + c.setCatType(Cat.Type.RED); + break; + case 8: + c.setCatType(Cat.Type.SIAMESE); + break; + case 9: + c.setCatType(Cat.Type.TABBY); + break; + case 10: + c.setCatType(Cat.Type.WHITE); + break; + } + + } + if (((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskEntityPokeball, PersistentDataType.STRING).equals("Gürteltier")) { + Armadillo armadillo = e.getEntity().getWorld().spawn(loc, Armadillo.class); + armadillo.setAge(((Snowball) e.getEntity()).getItem().getItemMeta().getPersistentDataContainer() + .get(App.main.nskAgePokeball, PersistentDataType.INTEGER)); + } + e.getEntity().getWorld().spawnParticle(Particle.FLASH, loc, 1); + App.main.isThrownHM.put((Player) e.getEntity().getShooter(), false); + + } + } + + private void whichHitEntity(ProjectileHitEvent e, EntityType et, String entityName, Object variant, Object type, + Object age) { + + e.setCancelled(true); + Location mobLoc = e.getHitEntity().getLocation(); + e.getHitEntity().getWorld().spawnParticle(Particle.FLASH, mobLoc, 1); + e.getHitEntity().remove(); + App.main.usedPokeball = App.main.newPokeball.clone(); + ItemMeta usedPBm = App.main.usedPokeball.getItemMeta(); + List lore = new ArrayList(); + TextComponent tLore; + usedPBm.getPersistentDataContainer().remove(App.main.nskPokeball); + usedPBm.getPersistentDataContainer().set(App.main.nskUsedPokeball, PersistentDataType.STRING, + "R3S_UsedPokeball"); + usedPBm.getPersistentDataContainer().set(App.main.nskEntityPokeball, PersistentDataType.STRING, entityName); + if (age != null) { + usedPBm.getPersistentDataContainer().set(App.main.nskAgePokeball, + PersistentDataType.INTEGER, + (int) age); + } + if (variant != null) { + if (variant instanceof DyeColor) { + switch ((DyeColor) variant) { + case WHITE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 0); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); + break; + case BLACK: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 1); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); + break; + case BLUE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 2); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLUE + "Blau")); + break; + case BROWN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 3); + tLore = Component.text(ChatColor.WHITE + "Farbe: ").append(Component.text("Braun") + .decoration(TextDecoration.ITALIC, false).color(TextColor.fromHexString("#74492A"))); + lore.add(tLore); + break; + case CYAN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 4); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Türkis", TextColor.fromHexString("#36ABCE")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case GRAY: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 5); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); + break; + case GREEN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 6); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GREEN + "Grün")); + break; + case LIGHT_BLUE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 7); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Hellblau", TextColor.fromHexString("#33A8CE")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case LIGHT_GRAY: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 8); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Hellgrau", TextColor.fromHexString("#93948B")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case LIME: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 9); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Hellgrün", TextColor.fromHexString("#6FB719")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case MAGENTA: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 10); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Magenta", TextColor.fromHexString("#CE55C4")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case ORANGE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 11); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Orange", TextColor.fromHexString("#F07413")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case PINK: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 12); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Rosa", TextColor.fromHexString("#EA8EAA")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case PURPLE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 13); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.LIGHT_PURPLE + "Lila")); + break; + case RED: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 14); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.RED + "Rot")); + break; + case YELLOW: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, + 15); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.YELLOW + "Gelb")); + break; + } + + } else if (variant instanceof Variant) { + switch (((Variant) variant)) { + case BLUE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 0); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLUE + "Blau")); + break; + case CYAN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 1); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Türkis", TextColor.fromHexString("#36ABCE")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case GOLD: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 2); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GOLD + "Gold")); + break; + case LUCY: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 3); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Rosa", TextColor.fromHexString("#EA8EAA")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case WILD: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 4); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Braun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + + } + } else if (variant instanceof org.bukkit.entity.Frog.Variant) { + switch (((org.bukkit.entity.Frog.Variant) variant).toString()) { + case "COLD": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 0); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GREEN + "Grün")); + break; + case "TEMPERATE": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 1); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Orange", TextColor.fromHexString("#F07413")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case "WARM": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 2); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); + break; + default: + break; + } + } else if (variant instanceof org.bukkit.entity.Parrot.Variant) { + switch ((org.bukkit.entity.Parrot.Variant) variant) { + case BLUE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 0); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLUE + "BLAU")); + break; + case CYAN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 1); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Türkis", TextColor.fromHexString("#36ABCE")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case GRAY: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 2); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); + break; + case GREEN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 3); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GREEN + "Grün")); + break; + case RED: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 4); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.RED + "Rot")); + break; + + } + } else if (variant instanceof Rabbit.Type) { + switch ((Rabbit.Type) variant) { + case BLACK: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 0); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); + break; + case BLACK_AND_WHITE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 1); + lore.add(Component.text( + ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz" + ChatColor.WHITE + "weiß")); + break; + case BROWN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 2); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Braun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case GOLD: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 3); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GOLD + "Gold")); + break; + case SALT_AND_PEPPER: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 4); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); + break; + case THE_KILLER_BUNNY: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 5); + break; + case WHITE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 6); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); + break; + } + } else if (variant instanceof Cat.Type) { + switch (((Cat.Type) variant).toString()) { + case "ALL_BLACK": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 0); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); + break; + case "BLACK": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 1); + lore.add(Component.text( + ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz" + ChatColor.WHITE + "weiß")); + break; + case "BRITISH_SHORTHAIR": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 2); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); + break; + case "CALICO": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 3); + + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Orange", TextColor.fromHexString("#F07413")) + .decoration(TextDecoration.ITALIC, false)) + .append(Component.text(ChatColor.WHITE + "weiß").decoration(TextDecoration.ITALIC, + false)) + .append(Component.text("braun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + + break; + case "JELLIE": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 4); + lore.add(Component.text( + ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau" + ChatColor.WHITE + "weiß")); + break; + case "PERSIAN": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 5); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Creme", TextColor.fromHexString("#FCDCB0")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case "RAGDOLL": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 6); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Braun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)) + .append(Component.text(ChatColor.WHITE + "weiß").decoration(TextDecoration.ITALIC, + false)); + lore.add(tLore); + break; + case "RED": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 7); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Orange", TextColor.fromHexString("#F07413")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case "SIAMESE": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 8); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text(ChatColor.GRAY + "Grau").decoration(TextDecoration.ITALIC, + false)) + .append(Component.text("braun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case "TABBY": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 9); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Braun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case "WHITE": + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 10); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); + break; + default: + break; + } + } else if (variant instanceof Horse.Color) { + switch ((Horse.Color) variant) { + case BLACK: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 0); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.BLACK + "Schwarz")); + break; + case BROWN: + + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 1); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Braun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + + break; + case CHESTNUT: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 2); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Orange", TextColor.fromHexString("#F07413")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case CREAMY: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 3); + + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Creme", TextColor.fromHexString("#FCDCB0")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case DARK_BROWN: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 4); + tLore = Component.text(ChatColor.WHITE + "Farbe: ") + .append(Component.text("Dunkelbraun", TextColor.fromHexString("#74492A")) + .decoration(TextDecoration.ITALIC, false)); + lore.add(tLore); + break; + case GRAY: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 5); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.GRAY + "Grau")); + break; + case WHITE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntVariantPokeball, + PersistentDataType.INTEGER, 6); + lore.add(Component.text(ChatColor.WHITE + "Farbe: " + ChatColor.WHITE + "Weiß")); + break; + } + + TextComponent tmLore; + switch ((Horse.Style) type) { + case BLACK_DOTS: + usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, + PersistentDataType.INTEGER, 0); + tmLore = Component.text(ChatColor.WHITE + "Muster: ") + .append(Component.text(ChatColor.BLACK + "Schwarz ")) + .decoration(TextDecoration.ITALIC, false) + .append(Component.text(ChatColor.WHITE + "gepunktet")) + .decoration(TextDecoration.ITALIC, false); + lore.add(tmLore); + break; + case NONE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, + PersistentDataType.INTEGER, 1); + tmLore = Component.text(ChatColor.WHITE + "Muster: ") + .append(Component.text(ChatColor.WHITE + "Keines")) + .decoration(TextDecoration.ITALIC, false); + lore.add(tmLore); + break; + case WHITE: + usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, + PersistentDataType.INTEGER, 2); + tmLore = Component.text(ChatColor.WHITE + "Muster: Weiße Beine") + .decoration(TextDecoration.ITALIC, false); + lore.add(tmLore); + break; + case WHITEFIELD: + usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, + PersistentDataType.INTEGER, 3); + tmLore = Component.text(ChatColor.WHITE + "Muster: Wolken").decoration(TextDecoration.ITALIC, + false); + lore.add(tmLore); + + break; + case WHITE_DOTS: + usedPBm.getPersistentDataContainer().set(App.main.nskEntStylePokeball, + PersistentDataType.INTEGER, 4); + tmLore = Component.text(ChatColor.WHITE + "Muster: Weiß Gepunktet") + .decoration(TextDecoration.ITALIC, false); + lore.add(tmLore); + break; + } + } + } + + usedPBm.displayName(Component.translatable(ChatColor.WHITE + entityName + " - Pokéball")); + usedPBm.lore(lore); + App.main.usedPokeball.setItemMeta(usedPBm); + App.main.getServer().getWorlds().get(0).dropItem(mobLoc, App.main.usedPokeball); + + } + } \ No newline at end of file diff --git a/pokeballs/.gradle/8.9/checksums/checksums.lock b/pokeballs/.gradle/8.9/checksums/checksums.lock deleted file mode 100644 index 847bb3a..0000000 Binary files a/pokeballs/.gradle/8.9/checksums/checksums.lock and /dev/null differ diff --git a/pokeballs/.gradle/8.9/dependencies-accessors/gc.properties b/pokeballs/.gradle/8.9/dependencies-accessors/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/pokeballs/.gradle/8.9/fileChanges/last-build.bin b/pokeballs/.gradle/8.9/fileChanges/last-build.bin deleted file mode 100644 index f76dd23..0000000 Binary files a/pokeballs/.gradle/8.9/fileChanges/last-build.bin and /dev/null differ diff --git a/pokeballs/.gradle/8.9/fileHashes/fileHashes.lock b/pokeballs/.gradle/8.9/fileHashes/fileHashes.lock deleted file mode 100644 index aef36e6..0000000 Binary files a/pokeballs/.gradle/8.9/fileHashes/fileHashes.lock and /dev/null differ diff --git a/pokeballs/.gradle/8.9/gc.properties b/pokeballs/.gradle/8.9/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/pokeballs/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/pokeballs/.gradle/buildOutputCleanup/buildOutputCleanup.lock deleted file mode 100644 index fc178af..0000000 Binary files a/pokeballs/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ diff --git a/pokeballs/.gradle/buildOutputCleanup/cache.properties b/pokeballs/.gradle/buildOutputCleanup/cache.properties deleted file mode 100644 index a8b5e56..0000000 --- a/pokeballs/.gradle/buildOutputCleanup/cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Sun Jul 20 15:58:39 CEST 2025 -gradle.version=8.14.2 diff --git a/pokeballs/.gradle/vcs-1/gc.properties b/pokeballs/.gradle/vcs-1/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/pokeballs/build.gradle.kts b/pokeballs/build.gradle.kts deleted file mode 100755 index 1ee99bf..0000000 --- a/pokeballs/build.gradle.kts +++ /dev/null @@ -1,49 +0,0 @@ -plugins { - `java-library` - id("io.papermc.paperweight.userdev") version "2.0.0-beta.14" - id("xyz.jpenilla.run-paper") version "2.3.1" // Adds runServer and runMojangMappedServer tasks for testing -} -group = "de.hessj.pokeballs" -version = "1.0-SNAPSHOT" -description = "pokeballs" - -tasks.withType { - destinationDirectory.set(file("../")) -} - -dependencies { - implementation(files("../craftbukkit.jar")) - implementation(files("../helper-1.0-SNAPSHOT.jar")) - paperweight.paperDevBundle("1.21.4-R0.1-SNAPSHOT") -} - -tasks { - // Configure reobfJar to run when invoking the build task - assemble { - dependsOn(reobfJar) - } - - compileJava { - options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything - - // Set the release flag. This configures what version bytecode the compiler will emit, as well as what JDK APIs are usable. - // See https://openjdk.java.net/jeps/247 for more information. - options.release.set(21) - } - javadoc { - options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything - } - processResources { - filteringCharset = Charsets.UTF_8.name() // We want UTF-8 for everything - val props = mapOf( - "name" to project.name, - "version" to project.version, - "description" to project.description, - "apiVersion" to "1.21" - ) - inputs.properties(props) - filesMatching("plugin.yml") { - expand(props) - } - } -} \ No newline at end of file diff --git a/pokeballs/settings.gradle.kts b/pokeballs/settings.gradle.kts deleted file mode 100755 index 57af0f9..0000000 --- a/pokeballs/settings.gradle.kts +++ /dev/null @@ -1,5 +0,0 @@ -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0" -} - -rootProject.name = "pokeballs" \ No newline at end of file diff --git a/pokeballs/src/main/java/de/hessj/pokeballs/App.java b/pokeballs/src/main/java/de/hessj/pokeballs/App.java deleted file mode 100755 index 53e53b8..0000000 --- a/pokeballs/src/main/java/de/hessj/pokeballs/App.java +++ /dev/null @@ -1,103 +0,0 @@ -package de.hessj.pokeballs; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.ShapedRecipe; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.components.CustomModelDataComponent; -import org.bukkit.persistence.PersistentDataType; -import org.bukkit.plugin.PluginManager; -import org.bukkit.plugin.java.JavaPlugin; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.ChatColor; - -public class App extends JavaPlugin { - public static App main; - public NamespacedKey nskPokeball = new NamespacedKey(this, "R3SPokeball"); - public NamespacedKey nskUsedPokeball = new NamespacedKey(this, "R3SUsedPokeball"); - public NamespacedKey nskEntityPokeball = new NamespacedKey(this, "R3SEntity"); - public NamespacedKey nskEntVariantPokeball = new NamespacedKey(this, "R3SEntityVariant"); - public NamespacedKey nskEntStylePokeball = new NamespacedKey(this, "R3SEntityStyle"); - public NamespacedKey nskAgePokeball = new NamespacedKey(this, "R3SEntityAge"); - - public ItemStack newPokeball; - public ItemStack usedPokeball; - public HashMap isThrownHM = new HashMap(); - - @Override - public void onEnable() { - getLogger().info("Plugin enabled!"); - main = this; - listenerRegistration(); - for(Player p : Bukkit.getServer().getOnlinePlayers()){ - isThrownHM.put(p, false); - } - } - - @Override - public void onDisable() { - getLogger().info("Plugin disabled!"); - } - - private void listenerRegistration() { - PluginManager pM = Bukkit.getPluginManager(); - newPokeball = new ItemStack(Material.SNOWBALL); - ItemMeta newPokeballMeta = newPokeball.getItemMeta(); - newPokeballMeta.displayName(Component.translatable(ChatColor.WHITE + "Pokéball")); - newPokeballMeta.setCustomModelData(1000011); - - CustomModelDataComponent cmdc4 = newPokeballMeta.getCustomModelDataComponent(); - List list4 = Arrays.asList("pokeball"); - cmdc4.setStrings(list4); - newPokeballMeta.setCustomModelDataComponent(cmdc4); - - newPokeballMeta.getPersistentDataContainer().set(nskPokeball, PersistentDataType.STRING, "R3S_Pokeball"); - newPokeball.setItemMeta(newPokeballMeta); - ShapedRecipe pokeballRecipe = new ShapedRecipe(nskPokeball, newPokeball); - pokeballRecipe.shape("RRR", "SES", "WWW"); - pokeballRecipe.setIngredient('R', Material.RED_CONCRETE); - pokeballRecipe.setIngredient('S', Material.BLACK_CONCRETE); - pokeballRecipe.setIngredient('E', Material.IRON_NUGGET); - pokeballRecipe.setIngredient('W', Material.WHITE_CONCRETE); - if (getServer().getRecipe(nskPokeball) == null) { - getServer().addRecipe(pokeballRecipe); - } - pM.registerEvents(new PokeballsListeners(), this); - getCommand("get").setExecutor(this); - } - - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (sender instanceof Player) { - if(!((Player) sender).isOp()){ - return true; - } - - if(args != null && args.length > 0){ - - if (label.equalsIgnoreCase("get") && args[0].toString() != "" && args[0].toString().equals("pokeball") && args.length == 2 && StringUtils.isNumeric(args[1])) { - ItemStack is = newPokeball.clone(); - is.setAmount(Integer.parseInt(args[1])); - ((Player) sender).getInventory().addItem(is); - } - else if (label.equalsIgnoreCase("get") && args[0].toString() != "" && args[0].toString().equals("pokeball")) { - ((Player) sender).getInventory().addItem(newPokeball); - } - } - } - return true; - } - - -} \ No newline at end of file diff --git a/pokeballs/src/main/resources/plugin.yml b/pokeballs/src/main/resources/plugin.yml deleted file mode 100755 index 2361d5f..0000000 --- a/pokeballs/src/main/resources/plugin.yml +++ /dev/null @@ -1,9 +0,0 @@ -main: de.hessj.pokeballs.App -name: PokeballPlugin -version: 0.1 -api-version: 1.21 -depend: [HelperPlugin] -commands: - get: - description: Give player Pokeball - usage: / \ No newline at end of file diff --git a/rebuild.sh b/rebuild.sh index dee8600..168ced9 100755 --- a/rebuild.sh +++ b/rebuild.sh @@ -3,13 +3,4 @@ curr_folder=$(pwd) rm -rf *-SNAPSHOT.jar cd helper && gradle wrapper && ./gradlew clean build && gradle build cd $curr_folder -cd betterhoppers && gradle wrapper && ./gradlew clean build && gradle build -cd $curr_folder -cd chestex && gradle wrapper && ./gradlew clean build && gradle build -cd $curr_folder -cd dailyquests && gradle wrapper && ./gradlew clean build && gradle build -cd $curr_folder cd environmentex && gradle wrapper && ./gradlew clean build && gradle build -cd $curr_folder -cd pokeballs && gradle wrapper && ./gradlew clean build && gradle build -cd $curr_folder